home *** CD-ROM | disk | FTP | other *** search
MacBinary | 1993-02-22 | 17.0 KB | [TEXT/KAHL] |
open in:
MacOS 8.1
|
Win98
|
DOS
browse contents |
view JSON data
|
view as text
This file was processed as: MacBinary
(archive/macBinary).
Confidence | Program | Detection | Match Type | Support
|
---|
66%
| dexvert
| Compact Compressed (Unix) (archive/compact)
| ext
| Supported |
10%
| dexvert
| MacBinary (archive/macBinary)
| fallback
| Supported |
1%
| dexvert
| Text File (text/txt)
| fallback
| Supported |
100%
| file
| MacBinary II, inited, Mon Feb 22 23:58:57 1993, modified Mon Feb 22 23:58:57 1993, creator Think C, type ASCII, 16484 bytes "SetPixelsQuickly.c" , at 0x40e4 714 bytes resource
| default (weak)
| |
99%
| file
| data
| default
| |
74%
| TrID
| Macintosh plain text (MacBinary)
| default
| |
25%
| TrID
| MacBinary 2
| default (weak)
| |
100%
| siegfried
| fmt/1762 MacBinary (II)
| default
| |
100%
| lsar
| MacBinary
| default
|
|
id metadata |
---|
key | value |
---|
macFileType | [TEXT] |
macFileCreator | [KAHL] |
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 12 53 65 74 50 69 78 | 65 6c 73 51 75 69 63 6b |..SetPix|elsQuick|
|00000010| 6c 79 2e 63 00 00 00 00 | 00 00 00 00 00 00 00 00 |ly.c....|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 4b 41 48 | 4c 01 00 00 00 00 00 00 |.TEXTKAH|L.......|
|00000050| 00 00 00 00 00 40 64 00 | 00 02 ca a7 af 5f 91 a7 |.....@d.|....._..|
|00000060| af 5f 91 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |._......|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 32 c7 00 00 |........|....2...|
|00000080| 2f 2a 0d 53 65 74 50 69 | 78 65 6c 73 51 75 69 63 |/*.SetPi|xelsQuic|
|00000090| 6b 6c 79 2e 63 0d 41 6c | 6c 20 74 68 65 20 53 65 |kly.c.Al|l the Se|
|000000a0| 74 2e 2e 2e 20 72 6f 75 | 74 69 6e 65 73 20 70 6f |t... rou|tines po|
|000000b0| 6b 65 20 61 20 72 6f 77 | 20 6f 66 20 70 69 78 65 |ke a row| of pixe|
|000000c0| 6c 73 2e 0d 41 6c 6c 20 | 74 68 65 20 47 65 74 2e |ls..All |the Get.|
|000000d0| 2e 2e 20 72 6f 75 74 69 | 6e 65 73 20 70 65 65 6b |.. routi|nes peek|
|000000e0| 20 61 20 72 6f 77 20 6f | 66 20 70 69 78 65 6c 73 | a row o|f pixels|
|000000f0| 2e 0d 53 65 74 50 69 78 | 65 6c 73 51 75 69 63 6b |..SetPix|elsQuick|
|00000100| 6c 79 20 61 6e 64 20 47 | 65 74 50 69 78 65 6c 73 |ly and G|etPixels|
|00000110| 51 75 69 63 6b 6c 79 20 | 75 73 65 20 74 68 65 20 |Quickly |use the |
|00000120| 63 75 72 72 65 6e 74 20 | 70 6f 72 74 2e 0d 53 65 |current |port..Se|
|00000130| 74 57 69 6e 64 6f 77 50 | 69 78 65 6c 73 51 75 69 |tWindowP|ixelsQui|
|00000140| 63 6b 6c 79 20 61 6e 64 | 20 47 65 74 57 69 6e 64 |ckly and| GetWind|
|00000150| 6f 77 50 69 78 65 6c 73 | 51 75 69 63 6b 6c 79 20 |owPixels|Quickly |
|00000160| 75 73 65 20 74 68 65 20 | 73 75 70 70 6c 69 65 64 |use the |supplied|
|00000170| 20 77 69 6e 64 6f 77 2e | 0d 53 65 74 44 65 76 69 | window.|.SetDevi|
|00000180| 63 65 50 69 78 65 6c 73 | 51 75 69 63 6b 6c 79 20 |cePixels|Quickly |
|00000190| 61 6e 64 20 47 65 74 44 | 65 76 69 63 65 50 69 78 |and GetD|evicePix|
|000001a0| 65 6c 73 51 75 69 63 6b | 6c 79 20 75 73 65 20 74 |elsQuick|ly use t|
|000001b0| 68 65 20 73 75 70 70 6c | 69 65 64 20 76 69 64 65 |he suppl|ied vide|
|000001c0| 6f 20 64 65 76 69 63 65 | 2e 0d 53 65 74 50 69 78 |o device|..SetPix|
|000001d0| 6d 61 70 50 69 78 65 6c | 73 51 75 69 63 6b 6c 79 |mapPixel|sQuickly|
|000001e0| 20 61 6e 64 20 47 65 74 | 50 69 78 6d 61 70 50 69 | and Get|PixmapPi|
|000001f0| 78 65 6c 73 51 75 69 63 | 6b 6c 79 20 75 73 65 20 |xelsQuic|kly use |
|00000200| 74 68 65 20 73 75 70 70 | 6c 69 65 64 20 70 69 78 |the supp|lied pix|
|00000210| 2f 62 69 74 6d 61 70 2e | 0d 0d 69 6e 74 20 53 65 |/bitmap.|..int Se|
|00000220| 74 50 69 78 65 6c 73 51 | 75 69 63 6b 6c 79 28 69 |tPixelsQ|uickly(i|
|00000230| 6e 74 20 78 2c 69 6e 74 | 20 79 2c 75 6e 73 69 67 |nt x,int| y,unsig|
|00000240| 6e 65 64 20 6c 6f 6e 67 | 20 76 61 6c 75 65 5b 5d |ned long| value[]|
|00000250| 2c 73 68 6f 72 74 20 6e | 29 3b 0d 69 6e 74 20 47 |,short n|);.int G|
|00000260| 65 74 50 69 78 65 6c 73 | 51 75 69 63 6b 6c 79 28 |etPixels|Quickly(|
|00000270| 69 6e 74 20 78 2c 69 6e | 74 20 79 2c 75 6e 73 69 |int x,in|t y,unsi|
|00000280| 67 6e 65 64 20 6c 6f 6e | 67 20 76 61 6c 75 65 5b |gned lon|g value[|
|00000290| 5d 2c 73 68 6f 72 74 20 | 6e 29 3b 0d 69 6e 74 20 |],short |n);.int |
|000002a0| 53 65 74 57 69 6e 64 6f | 77 50 69 78 65 6c 73 51 |SetWindo|wPixelsQ|
|000002b0| 75 69 63 6b 6c 79 28 57 | 69 6e 64 6f 77 50 74 72 |uickly(W|indowPtr|
|000002c0| 20 77 69 6e 64 6f 77 2c | 69 6e 74 20 78 2c 69 6e | window,|int x,in|
|000002d0| 74 20 79 2c 75 6e 73 69 | 67 6e 65 64 20 6c 6f 6e |t y,unsi|gned lon|
|000002e0| 67 20 76 61 6c 75 65 5b | 5d 2c 73 68 6f 72 74 20 |g value[|],short |
|000002f0| 6e 29 3b 0d 69 6e 74 20 | 47 65 74 57 69 6e 64 6f |n);.int |GetWindo|
|00000300| 77 50 69 78 65 6c 73 51 | 75 69 63 6b 6c 79 28 57 |wPixelsQ|uickly(W|
|00000310| 69 6e 64 6f 77 50 74 72 | 20 77 69 6e 64 6f 77 2c |indowPtr| window,|
|00000320| 69 6e 74 20 78 2c 69 6e | 74 20 79 2c 75 6e 73 69 |int x,in|t y,unsi|
|00000330| 67 6e 65 64 20 6c 6f 6e | 67 20 76 61 6c 75 65 5b |gned lon|g value[|
|00000340| 5d 2c 73 68 6f 72 74 20 | 6e 29 3b 0d 69 6e 74 20 |],short |n);.int |
|00000350| 53 65 74 44 65 76 69 63 | 65 50 69 78 65 6c 73 51 |SetDevic|ePixelsQ|
|00000360| 75 69 63 6b 6c 79 28 47 | 44 48 61 6e 64 6c 65 20 |uickly(G|DHandle |
|00000370| 64 65 76 69 63 65 2c 69 | 6e 74 20 78 2c 69 6e 74 |device,i|nt x,int|
|00000380| 20 79 2c 75 6e 73 69 67 | 6e 65 64 20 6c 6f 6e 67 | y,unsig|ned long|
|00000390| 20 76 61 6c 75 65 5b 5d | 2c 73 68 6f 72 74 20 6e | value[]|,short n|
|000003a0| 29 3b 0d 69 6e 74 20 47 | 65 74 44 65 76 69 63 65 |);.int G|etDevice|
|000003b0| 50 69 78 65 6c 73 51 75 | 69 63 6b 6c 79 28 47 44 |PixelsQu|ickly(GD|
|000003c0| 48 61 6e 64 6c 65 20 64 | 65 76 69 63 65 2c 69 6e |Handle d|evice,in|
|000003d0| 74 20 78 2c 69 6e 74 20 | 79 2c 75 6e 73 69 67 6e |t x,int |y,unsign|
|000003e0| 65 64 20 6c 6f 6e 67 20 | 76 61 6c 75 65 5b 5d 2c |ed long |value[],|
|000003f0| 73 68 6f 72 74 20 6e 29 | 3b 0d 69 6e 74 20 53 65 |short n)|;.int Se|
|00000400| 74 50 69 78 6d 61 70 50 | 69 78 65 6c 73 51 75 69 |tPixmapP|ixelsQui|
|00000410| 63 6b 6c 79 28 50 69 78 | 4d 61 70 50 74 72 20 70 |ckly(Pix|MapPtr p|
|00000420| 6d 50 74 72 2c 69 6e 74 | 20 78 2c 69 6e 74 20 79 |mPtr,int| x,int y|
|00000430| 2c 75 6e 73 69 67 6e 65 | 64 20 6c 6f 6e 67 20 76 |,unsigne|d long v|
|00000440| 61 6c 75 65 5b 5d 2c 73 | 68 6f 72 74 20 6e 29 3b |alue[],s|hort n);|
|00000450| 0d 69 6e 74 20 47 65 74 | 50 69 78 6d 61 70 50 69 |.int Get|PixmapPi|
|00000460| 78 65 6c 73 51 75 69 63 | 6b 6c 79 28 50 69 78 4d |xelsQuic|kly(PixM|
|00000470| 61 70 50 74 72 20 70 6d | 50 74 72 2c 69 6e 74 20 |apPtr pm|Ptr,int |
|00000480| 78 2c 69 6e 74 20 79 2c | 75 6e 73 69 67 6e 65 64 |x,int y,|unsigned|
|00000490| 20 6c 6f 6e 67 20 76 61 | 6c 75 65 5b 5d 2c 73 68 | long va|lue[],sh|
|000004a0| 6f 72 74 20 6e 29 3b 0d | 0d 54 68 69 73 20 69 73 |ort n);.|.This is|
|000004b0| 20 74 68 65 20 66 61 73 | 74 65 73 74 20 61 6e 64 | the fas|test and|
|000004c0| 20 65 61 73 69 65 73 74 | 20 77 61 79 20 74 6f 20 | easiest| way to |
|000004d0| 74 72 61 6e 73 66 6f 72 | 6d 20 62 61 63 6b 20 61 |transfor|m back a|
|000004e0| 6e 64 20 66 6f 72 74 68 | 20 62 65 74 77 65 65 6e |nd forth| between|
|000004f0| 20 61 20 50 69 78 4d 61 | 70 0d 6f 72 20 42 69 74 | a PixMa|p.or Bit|
|00000500| 4d 61 70 20 61 6e 64 20 | 61 20 6e 75 6d 65 72 69 |Map and |a numeri|
|00000510| 63 61 6c 20 72 65 70 72 | 65 73 65 6e 74 61 74 69 |cal repr|esentati|
|00000520| 6f 6e 20 6f 66 20 61 6e | 20 61 72 62 69 74 72 61 |on of an| arbitra|
|00000530| 72 79 20 69 6d 61 67 65 | 20 61 6d 65 6e 61 62 6c |ry image| amenabl|
|00000540| 65 20 74 6f 0d 63 6f 6d | 70 75 74 61 74 69 6f 6e |e to.com|putation|
|00000550| 20 69 6e 20 43 2e 20 59 | 6f 75 20 63 61 6e 20 74 | in C. Y|ou can t|
|00000560| 68 69 6e 6b 20 6f 66 20 | 74 68 65 73 65 20 72 6f |hink of |these ro|
|00000570| 75 74 69 6e 65 73 20 61 | 73 20 72 65 70 6c 61 63 |utines a|s replac|
|00000580| 65 6d 65 6e 74 73 20 66 | 6f 72 20 74 68 65 0d 6f |ements f|or the.o|
|00000590| 66 66 69 63 69 61 6c 20 | 41 70 70 6c 65 20 53 65 |fficial |Apple Se|
|000005a0| 74 43 50 69 78 65 6c 2c | 20 65 74 63 2e 20 54 68 |tCPixel,| etc. Th|
|000005b0| 65 69 72 20 76 69 72 74 | 75 65 20 69 73 20 74 68 |eir virt|ue is th|
|000005c0| 61 74 20 74 68 65 79 27 | 72 65 20 76 65 72 79 20 |at they'|re very |
|000005d0| 66 61 73 74 20 61 6e 64 | 20 64 6f 6e 27 74 0d 74 |fast and| don't.t|
|000005e0| 72 61 6e 73 6c 61 74 65 | 20 79 6f 75 72 20 69 6e |ranslate| your in|
|000005f0| 64 65 78 20 76 69 61 20 | 61 6e 79 20 63 6f 6c 6f |dex via |any colo|
|00000600| 72 20 74 61 62 6c 65 2e | 20 53 65 74 2e 2e 2e 20 |r table.| Set... |
|00000610| 61 6e 64 20 47 65 74 2e | 2e 2e 20 69 67 6e 6f 72 |and Get.|.. ignor|
|00000620| 65 20 74 68 65 20 63 6f | 6c 6f 72 0d 73 70 65 63 |e the co|lor.spec|
|00000630| 20 61 72 72 61 79 73 2c | 20 67 69 76 69 6e 67 20 | arrays,| giving |
|00000640| 79 6f 75 20 64 69 72 65 | 63 74 20 61 63 63 65 73 |you dire|ct acces|
|00000650| 73 20 74 6f 20 74 68 65 | 20 75 6e 73 69 67 6e 65 |s to the| unsigne|
|00000660| 64 20 6e 75 6d 62 65 72 | 20 73 74 6f 72 65 64 20 |d number| stored |
|00000670| 69 6e 20 65 61 63 68 0d | 70 69 78 65 6c 20 28 77 |in each.|pixel (w|
|00000680| 68 65 74 68 65 72 20 31 | 2c 20 32 2c 20 34 2c 20 |hether 1|, 2, 4, |
|00000690| 38 2c 20 31 36 2c 20 6f | 72 20 33 32 20 62 69 74 |8, 16, o|r 32 bit|
|000006a0| 73 29 2e 20 57 69 74 68 | 20 61 70 70 72 6f 70 72 |s). With| appropr|
|000006b0| 69 61 74 65 20 63 61 73 | 74 69 6e 67 20 79 6f 75 |iate cas|ting you|
|000006c0| 20 6d 61 79 0d 73 75 70 | 70 6c 79 20 61 20 43 57 | may.sup|ply a CW|
|000006d0| 69 6e 64 6f 77 50 74 72 | 20 69 6e 20 70 6c 61 63 |indowPtr| in plac|
|000006e0| 65 20 6f 66 20 74 68 65 | 20 57 69 6e 64 6f 77 50 |e of the| WindowP|
|000006f0| 74 72 2c 20 61 6e 64 20 | 79 6f 75 20 6d 61 79 20 |tr, and |you may |
|00000700| 73 75 70 70 6c 79 20 61 | 20 42 69 74 4d 61 70 50 |supply a| BitMapP|
|00000710| 74 72 20 69 6e 0d 70 6c | 61 63 65 20 6f 66 20 74 |tr in.pl|ace of t|
|00000720| 68 65 20 50 69 78 4d 61 | 70 50 74 72 2e 0d 0d 46 |he PixMa|pPtr...F|
|00000730| 6f 72 20 61 6c 6c 20 74 | 68 65 20 72 6f 75 74 69 |or all t|he routi|
|00000740| 6e 65 73 2c 20 79 6f 75 | 20 73 75 70 70 6c 79 20 |nes, you| supply |
|00000750| 74 68 65 20 28 78 2c 79 | 29 20 63 6f 6f 72 64 69 |the (x,y|) coordi|
|00000760| 6e 61 74 65 20 6f 66 20 | 74 68 65 20 66 69 72 73 |nate of |the firs|
|00000770| 74 20 70 69 78 65 6c 20 | 79 6f 75 0d 77 61 6e 74 |t pixel |you.want|
|00000780| 20 74 6f 20 61 63 63 65 | 73 73 20 69 6e 20 74 68 | to acce|ss in th|
|00000790| 65 20 61 70 70 72 6f 70 | 72 69 61 74 65 20 63 6f |e approp|riate co|
|000007a0| 6f 72 64 69 6e 61 74 65 | 20 73 79 73 74 65 6d 2c |ordinate| system,|
|000007b0| 20 61 6e 20 75 6e 73 69 | 67 6e 65 64 20 6c 6f 6e | an unsi|gned lon|
|000007c0| 67 20 61 72 72 61 79 0d | 63 61 6c 6c 65 64 20 22 |g array.|called "|
|000007d0| 76 61 6c 75 65 22 2c 20 | 61 6e 64 20 74 68 65 20 |value", |and the |
|000007e0| 6e 75 6d 62 65 72 20 6f | 66 20 70 69 78 65 6c 73 |number o|f pixels|
|000007f0| 20 74 6f 20 61 63 63 65 | 73 73 2e 20 78 20 77 69 | to acce|ss. x wi|
|00000800| 6c 6c 20 69 6e 63 72 65 | 6d 65 6e 74 20 66 6f 72 |ll incre|ment for|
|00000810| 20 65 61 63 68 0d 73 75 | 63 63 65 73 73 69 76 65 | each.su|ccessive|
|00000820| 20 70 69 78 65 6c 2e 20 | 53 65 74 2e 2e 2e 20 77 | pixel. |Set... w|
|00000830| 69 6c 6c 20 63 6f 70 79 | 20 76 61 6c 75 65 73 2c |ill copy| values,|
|00000840| 20 6f 6e 65 20 62 79 20 | 6f 6e 65 2c 20 66 72 6f | one by |one, fro|
|00000850| 6d 20 22 76 61 6c 75 65 | 22 20 69 6e 74 6f 20 74 |m "value|" into t|
|00000860| 68 65 0d 70 69 78 2f 62 | 69 74 6d 61 70 2e 20 47 |he.pix/b|itmap. G|
|00000870| 65 74 2e 2e 2e 20 77 69 | 6c 6c 20 63 6f 70 79 20 |et... wi|ll copy |
|00000880| 66 72 6f 6d 20 74 68 65 | 20 70 69 78 2f 62 69 74 |from the| pix/bit|
|00000890| 6d 61 70 20 69 6e 74 6f | 20 22 76 61 6c 75 65 22 |map into| "value"|
|000008a0| 2e 20 54 68 65 20 72 6f | 75 74 69 6e 65 20 77 6f |. The ro|utine wo|
|000008b0| 72 6b 0d 77 69 74 68 20 | 61 6c 6c 20 70 69 78 65 |rk.with |all pixe|
|000008c0| 6c 20 73 69 7a 65 73 3a | 20 31 20 74 6f 20 33 32 |l sizes:| 1 to 32|
|000008d0| 20 62 69 74 73 2e 20 54 | 68 65 20 22 76 61 6c 75 | bits. T|he "valu|
|000008e0| 65 22 20 61 72 72 61 79 | 20 74 68 61 74 20 79 6f |e" array| that yo|
|000008f0| 75 20 73 75 70 70 6c 79 | 20 69 73 20 61 6c 77 61 |u supply| is alwa|
|00000900| 79 73 0d 75 6e 73 69 67 | 6e 65 64 20 6c 6f 6e 67 |ys.unsig|ned long|
|00000910| 2e 0d 0d 41 6c 6c 20 74 | 68 65 20 72 6f 75 74 69 |...All t|he routi|
|00000920| 6e 65 73 20 63 6c 69 70 | 20 74 6f 20 65 6e 66 6f |nes clip| to enfo|
|00000930| 72 63 65 20 65 69 74 68 | 65 72 20 74 68 65 20 70 |rce eith|er the p|
|00000940| 69 78 2f 62 69 74 6d 61 | 70 27 73 20 62 6f 75 6e |ix/bitma|p's boun|
|00000950| 64 73 2c 20 6f 72 20 74 | 68 65 20 77 69 6e 64 6f |ds, or t|he windo|
|00000960| 77 27 73 0d 70 6f 72 74 | 52 65 63 74 20 28 69 66 |w's.port|Rect (if|
|00000970| 20 79 6f 75 20 70 61 73 | 73 20 61 20 77 69 6e 64 | you pas|s a wind|
|00000980| 6f 77 20 6f 72 20 75 73 | 65 20 74 68 65 20 63 75 |ow or us|e the cu|
|00000990| 72 72 65 6e 74 20 77 69 | 6e 64 6f 77 2f 70 6f 72 |rrent wi|ndow/por|
|000009a0| 74 29 2e 20 54 68 65 20 | 6f 6e 6c 79 20 77 61 79 |t). The |only way|
|000009b0| 20 6f 66 0d 67 65 74 74 | 69 6e 67 20 69 6e 74 6f | of.gett|ing into|
|000009c0| 20 74 72 6f 75 62 6c 65 | 20 77 6f 75 6c 64 20 62 | trouble| would b|
|000009d0| 65 20 74 6f 20 70 61 73 | 73 20 61 20 77 69 6e 64 |e to pas|s a wind|
|000009e0| 6f 77 27 73 20 50 69 78 | 4d 61 70 20 64 69 72 65 |ow's Pix|Map dire|
|000009f0| 63 74 6c 79 2e 20 49 74 | 20 69 73 0d 64 69 66 66 |ctly. It| is.diff|
|00000a00| 69 63 75 6c 74 20 74 6f | 20 66 69 67 75 72 65 20 |icult to| figure |
|00000a10| 6f 75 74 20 74 68 65 20 | 63 6c 69 70 70 69 6e 67 |out the |clipping|
|00000a20| 20 6f 66 20 61 20 77 69 | 6e 64 6f 77 27 73 20 50 | of a wi|ndow's P|
|00000a30| 69 78 4d 61 70 3b 20 52 | 65 63 74 54 6f 41 64 64 |ixMap; R|ectToAdd|
|00000a40| 72 65 73 73 20 64 6f 65 | 73 0d 69 74 2c 20 62 75 |ress doe|s.it, bu|
|00000a50| 74 20 6f 6e 6c 79 20 6f | 6e 20 74 68 65 20 66 69 |t only o|n the fi|
|00000a60| 72 73 74 20 63 61 6c 6c | 2c 20 61 66 74 65 72 20 |rst call|, after |
|00000a70| 77 68 69 63 68 20 77 65 | 20 75 73 65 20 74 68 65 |which we| use the|
|00000a80| 20 6f 6c 64 20 63 61 63 | 68 65 64 20 61 6e 73 77 | old cac|hed answ|
|00000a90| 65 72 2c 20 77 68 69 63 | 68 0d 64 6f 65 73 6e 27 |er, whic|h.doesn'|
|00000aa0| 74 20 69 6e 63 6c 75 64 | 65 20 63 6c 69 70 70 69 |t includ|e clippi|
|00000ab0| 6e 67 20 69 6e 66 6f 72 | 6d 61 74 69 6f 6e 2e 0d |ng infor|mation..|
|00000ac0| 0d 54 68 65 20 72 65 74 | 75 72 6e 65 64 20 76 61 |.The ret|urned va|
|00000ad0| 6c 75 65 20 6f 66 20 74 | 68 65 20 66 75 6e 63 74 |lue of t|he funct|
|00000ae0| 69 6f 6e 20 69 73 20 6e | 6f 72 6d 61 6c 6c 79 20 |ion is n|ormally |
|00000af0| 7a 65 72 6f 2c 20 69 6e | 64 69 63 61 74 69 6e 67 |zero, in|dicating|
|00000b00| 20 73 75 63 63 65 73 73 | 2c 20 62 75 74 0d 77 69 | success|, but.wi|
|00000b10| 6c 6c 20 62 65 20 6e 6f | 6e 7a 65 72 6f 20 69 66 |ll be no|nzero if|
|00000b20| 20 74 68 65 20 72 65 71 | 75 65 73 74 20 63 6f 75 | the req|uest cou|
|00000b30| 6c 64 20 6e 6f 74 20 62 | 65 20 66 75 6c 6c 79 20 |ld not b|e fully |
|00000b40| 73 61 74 69 73 66 69 65 | 64 2e 20 41 6c 6c 20 74 |satisfie|d. All t|
|00000b50| 68 65 20 72 6f 75 74 69 | 6e 65 73 0d 63 6c 69 70 |he routi|nes.clip|
|00000b60| 20 74 6f 20 74 68 65 20 | 62 69 74 2f 70 69 78 6d | to the |bit/pixm|
|00000b70| 61 70 20 62 6f 75 6e 64 | 73 3b 20 74 68 69 73 20 |ap bound|s; this |
|00000b80| 69 73 20 74 72 65 61 74 | 65 64 20 61 73 20 6e 6f |is treat|ed as no|
|00000b90| 72 6d 61 6c 20 62 79 20 | 74 68 65 20 53 65 74 2e |rmal by |the Set.|
|00000ba0| 2e 2e 20 72 6f 75 74 69 | 6e 65 73 0d 61 6e 64 20 |.. routi|nes.and |
|00000bb0| 69 73 20 72 65 70 6f 72 | 74 65 64 20 61 73 20 61 |is repor|ted as a|
|00000bc0| 6e 20 65 72 72 6f 72 20 | 62 79 20 74 68 65 20 47 |n error |by the G|
|00000bd0| 65 74 2e 2e 2e 20 72 6f | 75 74 69 6e 65 73 2e 20 |et... ro|utines. |
|00000be0| 49 6e 20 74 68 65 20 6c | 61 74 74 65 72 20 63 61 |In the l|atter ca|
|00000bf0| 73 65 20 73 6f 6d 65 20 | 6f 66 0d 74 68 65 20 65 |se some |of.the e|
|00000c00| 6c 65 6d 65 6e 74 73 20 | 6f 66 20 74 68 65 20 76 |lements |of the v|
|00000c10| 61 6c 75 65 20 61 72 72 | 61 79 20 77 69 6c 6c 20 |alue arr|ay will |
|00000c20| 68 61 76 65 20 62 65 65 | 6e 20 6c 65 66 74 20 75 |have bee|n left u|
|00000c30| 6e 74 6f 75 63 68 65 64 | 20 62 65 63 61 75 73 65 |ntouched| because|
|00000c40| 20 74 68 65 20 70 69 78 | 65 6c 73 0d 74 68 65 79 | the pix|els.they|
|00000c50| 20 63 6f 72 72 65 73 70 | 6f 6e 64 20 74 6f 20 63 | corresp|ond to c|
|00000c60| 6f 75 6c 64 20 6e 6f 74 | 20 62 65 20 61 63 63 65 |ould not| be acce|
|00000c70| 73 73 65 64 2e 0d 0d 54 | 68 65 73 65 20 72 6f 75 |ssed...T|hese rou|
|00000c80| 74 69 6e 65 73 20 28 61 | 6e 64 20 52 65 63 74 54 |tines (a|nd RectT|
|00000c90| 6f 41 64 64 72 65 73 73 | 29 20 64 6f 20 6e 6f 74 |oAddress|) do not|
|00000ca0| 20 22 6d 6f 76 65 20 6d | 65 6d 6f 72 79 22 2c 20 | "move m|emory", |
|00000cb0| 69 2e 65 2e 20 74 68 65 | 79 20 64 6f 6e 27 74 20 |i.e. the|y don't |
|00000cc0| 67 69 76 65 0d 74 68 65 | 20 4d 65 6d 6f 72 79 20 |give.the| Memory |
|00000cd0| 4d 61 6e 61 67 65 72 20 | 61 6e 79 20 70 72 65 74 |Manager |any pret|
|00000ce0| 65 78 74 20 66 6f 72 20 | 73 68 75 66 66 6c 69 6e |ext for |shufflin|
|00000cf0| 67 20 61 72 6f 75 6e 64 | 20 74 68 65 20 6d 65 6d |g around| the mem|
|00000d00| 6f 72 79 20 61 6c 6c 6f | 63 61 74 69 6f 6e 73 20 |ory allo|cations |
|00000d10| 61 6e 64 0d 63 68 61 6e | 67 65 20 69 74 73 20 6d |and.chan|ge its m|
|00000d20| 61 73 74 65 72 20 70 6f | 69 6e 74 65 72 73 2e 20 |aster po|inters. |
|00000d30| 54 68 61 74 27 73 20 77 | 68 79 20 69 74 27 73 20 |That's w|hy it's |
|00000d40| 4f 4b 20 74 6f 20 64 65 | 72 65 66 65 72 65 6e 63 |OK to de|referenc|
|00000d50| 65 20 74 68 65 20 70 69 | 78 6d 61 70 20 68 61 6e |e the pi|xmap han|
|00000d60| 64 6c 65 2c 0d 70 61 73 | 73 69 6e 67 20 61 73 20 |dle,.pas|sing as |
|00000d70| 61 6e 20 61 72 67 75 6d | 65 6e 74 20 61 20 74 65 |an argum|ent a te|
|00000d80| 6d 70 6f 72 61 72 79 20 | 63 6f 70 79 20 6f 66 20 |mporary |copy of |
|00000d90| 74 68 65 20 70 69 78 6d | 61 70 27 73 20 6d 61 73 |the pixm|ap's mas|
|00000da0| 74 65 72 20 70 6f 69 6e | 74 65 72 2e 0d 0d 53 65 |ter poin|ter...Se|
|00000db0| 74 50 69 78 6d 61 70 50 | 69 78 65 6c 73 51 75 69 |tPixmapP|ixelsQui|
|00000dc0| 63 6b 6c 79 20 61 6e 64 | 20 47 65 74 50 69 78 6d |ckly and| GetPixm|
|00000dd0| 61 70 50 69 78 65 6c 73 | 51 75 69 63 6b 6c 79 20 |apPixels|Quickly |
|00000de0| 72 75 6e 20 66 61 73 74 | 20 62 79 20 63 61 63 68 |run fast| by cach|
|00000df0| 69 6e 67 20 74 68 65 0d | 69 6e 66 6f 72 6d 61 74 |ing the.|informat|
|00000e00| 69 6f 6e 20 74 68 61 74 | 20 74 68 65 79 20 67 65 |ion that| they ge|
|00000e10| 74 20 61 62 6f 75 74 20 | 79 6f 75 72 20 42 69 74 |t about |your Bit|
|00000e20| 2f 50 69 78 6d 61 70 20 | 66 72 6f 6d 20 52 65 63 |/Pixmap |from Rec|
|00000e30| 74 54 6f 41 64 64 72 65 | 73 73 2e 20 45 61 63 68 |tToAddre|ss. Each|
|00000e40| 20 68 61 73 20 69 74 73 | 0d 6f 77 6e 20 63 61 63 | has its|.own cac|
|00000e50| 68 65 2e 20 54 68 65 20 | 63 61 63 68 65 20 69 73 |he. The |cache is|
|00000e60| 20 61 73 73 75 6d 65 64 | 20 74 6f 20 62 65 20 66 | assumed| to be f|
|00000e70| 72 65 73 68 20 28 69 2e | 65 2e 20 69 73 20 6e 6f |resh (i.|e. is no|
|00000e80| 74 20 72 65 63 6f 6d 70 | 75 74 65 64 29 20 69 66 |t recomp|uted) if|
|00000e90| 20 69 74 0d 72 65 63 65 | 69 76 65 73 20 74 68 65 | it.rece|ives the|
|00000ea0| 20 73 61 6d 65 20 50 69 | 78 2f 42 69 74 6d 61 70 | same Pi|x/Bitmap|
|00000eb0| 20 61 73 20 6c 61 73 74 | 20 74 69 6d 65 2e 20 49 | as last| time. I|
|00000ec0| 74 20 63 68 65 63 6b 73 | 20 77 68 65 74 68 65 72 |t checks| whether|
|00000ed0| 20 74 68 65 20 70 69 78 | 2f 62 69 74 6d 61 70 20 | the pix|/bitmap |
|00000ee0| 68 61 73 0d 74 68 65 20 | 73 61 6d 65 20 61 64 64 |has.the |same add|
|00000ef0| 72 65 73 73 2c 20 62 61 | 73 65 41 64 64 72 2c 20 |ress, ba|seAddr, |
|00000f00| 72 6f 77 42 79 74 65 73 | 2c 20 61 6e 64 20 62 6f |rowBytes|, and bo|
|00000f10| 75 6e 64 73 2e 20 59 6f | 75 20 63 61 6e 20 66 6f |unds. Yo|u can fo|
|00000f20| 72 63 65 20 61 20 66 6c | 75 73 68 20 6f 66 20 74 |rce a fl|ush of t|
|00000f30| 68 65 0d 63 61 63 68 65 | 20 62 79 20 70 61 73 73 |he.cache| by pass|
|00000f40| 69 6e 67 20 61 20 4e 55 | 4c 4c 20 62 69 74 2f 70 |ing a NU|LL bit/p|
|00000f50| 69 78 6d 61 70 20 70 6f | 69 6e 74 65 72 2e 20 28 |ixmap po|inter. (|
|00000f60| 54 68 69 73 20 77 69 6c | 6c 20 72 65 73 75 6c 74 |This wil|l result|
|00000f70| 20 69 6e 20 61 20 72 65 | 74 75 72 6e 65 64 0d 76 | in a re|turned.v|
|00000f80| 61 6c 75 65 20 6f 66 20 | 30 2c 20 73 69 6e 63 65 |alue of |0, since|
|00000f90| 20 74 68 65 20 66 6c 75 | 73 68 20 69 73 20 61 6c | the flu|sh is al|
|00000fa0| 77 61 79 73 20 73 75 63 | 63 65 73 73 66 75 6c 2e |ways suc|cessful.|
|00000fb0| 29 0d 0d 53 65 65 20 74 | 68 65 20 64 65 6d 6f 20 |)..See t|he demo |
|00000fc0| 47 72 61 74 69 6e 67 2e | 63 20 66 6f 72 20 61 6e |Grating.|c for an|
|00000fd0| 20 65 78 61 6d 70 6c 65 | 20 6f 66 20 68 6f 77 20 | example| of how |
|00000fe0| 74 6f 20 75 73 65 20 74 | 68 69 73 20 74 6f 20 64 |to use t|his to d|
|00000ff0| 69 73 70 6c 61 79 20 61 | 20 70 61 74 74 65 72 6e |isplay a| pattern|
|00001000| 20 6f 6e 0d 74 68 65 20 | 73 63 72 65 65 6e 2e 0d | on.the |screen..|
|00001010| 0d 09 2f 2f 20 54 68 69 | 73 20 69 73 20 61 20 73 |..// Thi|s is a s|
|00001020| 69 6d 70 6c 65 20 77 72 | 69 74 65 2d 74 68 65 6e |imple wr|ite-then|
|00001030| 2d 72 65 61 64 20 74 65 | 73 74 20 6f 66 20 74 68 |-read te|st of th|
|00001040| 65 73 65 20 72 6f 75 74 | 69 6e 65 73 2c 0d 09 2f |ese rout|ines,../|
|00001050| 2f 20 77 72 69 74 69 6e | 67 20 72 61 6e 64 6f 6d |/ writin|g random|
|00001060| 20 6e 75 6d 62 65 72 73 | 20 74 6f 20 74 68 65 20 | numbers| to the |
|00001070| 74 6f 70 20 6c 69 6e 65 | 20 6f 66 20 74 68 65 20 |top line| of the |
|00001080| 6d 61 69 6e 20 73 63 72 | 65 65 6e 2e 0d 09 75 6e |main scr|een...un|
|00001090| 73 69 67 6e 65 64 20 6c | 6f 6e 67 20 72 6f 77 5b |signed l|ong row[|
|000010a0| 31 30 30 5d 2c 72 6f 77 | 32 5b 31 30 30 5d 3b 0d |100],row|2[100];.|
|000010b0| 09 69 6e 74 20 72 6f 77 | 4c 65 6e 67 74 68 3d 31 |.int row|Length=1|
|000010c0| 30 30 2c 63 6f 6c 6f 72 | 73 2c 69 3b 0d 09 64 65 |00,color|s,i;..de|
|000010d0| 76 69 63 65 3d 47 65 74 | 4d 61 69 6e 44 65 76 69 |vice=Get|MainDevi|
|000010e0| 63 65 28 29 3b 0d 09 63 | 6f 6c 6f 72 73 3d 28 2a |ce();..c|olors=(*|
|000010f0| 2a 28 2a 2a 28 2a 2a 64 | 65 76 69 63 65 29 2e 67 |*(**(**d|evice).g|
|00001100| 64 50 4d 61 70 29 2e 70 | 6d 54 61 62 6c 65 29 2e |dPMap).p|mTable).|
|00001110| 63 74 53 69 7a 65 2b 31 | 3b 0d 09 66 6f 72 28 69 |ctSize+1|;..for(i|
|00001120| 3d 30 3b 69 3c 72 6f 77 | 4c 65 6e 67 74 68 3b 69 |=0;i<row|Length;i|
|00001130| 2b 2b 29 72 6f 77 5b 69 | 5d 3d 6e 72 61 6e 64 28 |++)row[i|]=nrand(|
|00001140| 63 6f 6c 6f 72 73 29 3b | 0d 09 53 65 74 44 65 76 |colors);|..SetDev|
|00001150| 69 63 65 50 69 78 65 6c | 73 51 75 69 63 6b 6c 79 |icePixel|sQuickly|
|00001160| 28 64 65 76 69 63 65 2c | 30 2c 30 2c 72 6f 77 2c |(device,|0,0,row,|
|00001170| 72 6f 77 4c 65 6e 67 74 | 68 29 3b 0d 09 53 65 74 |rowLengt|h);..Set|
|00001180| 44 65 76 69 63 65 50 69 | 78 65 6c 73 51 75 69 63 |DevicePi|xelsQuic|
|00001190| 6b 6c 79 28 64 65 76 69 | 63 65 2c 30 2c 30 2c 72 |kly(devi|ce,0,0,r|
|000011a0| 6f 77 32 2c 72 6f 77 4c | 65 6e 67 74 68 29 3b 0d |ow2,rowL|ength);.|
|000011b0| 09 66 6f 72 28 69 3d 30 | 3b 69 3c 72 6f 77 4c 65 |.for(i=0|;i<rowLe|
|000011c0| 6e 67 74 68 3b 69 2b 2b | 29 69 66 28 72 6f 77 32 |ngth;i++|)if(row2|
|000011d0| 5b 69 5d 21 3d 72 6f 77 | 5b 69 5d 29 0d 09 09 70 |[i]!=row|[i])...p|
|000011e0| 72 69 6e 74 66 28 22 25 | 64 2d 74 68 20 70 69 78 |rintf("%|d-th pix|
|000011f0| 65 6c 3a 20 77 72 6f 74 | 65 20 25 6c 64 2c 20 62 |el: wrot|e %ld, b|
|00001200| 75 74 20 72 65 61 64 20 | 25 6c 64 5c 6e 22 2c 69 |ut read |%ld\n",i|
|00001210| 2c 72 6f 77 5b 69 5d 2c | 72 6f 77 32 5b 69 5d 29 |,row[i],|row2[i])|
|00001220| 3b 0d 0d 48 49 53 54 4f | 52 59 3a 0d 34 2f 34 2f |;..HISTO|RY:.4/4/|
|00001230| 38 39 09 64 67 70 20 77 | 72 6f 74 65 20 53 65 74 |89.dgp w|rote Set|
|00001240| 49 50 69 78 65 6c 2e 63 | 0d 39 2f 38 2f 39 30 09 |IPixel.c|.9/8/90.|
|00001250| 64 67 70 20 75 70 64 61 | 74 65 64 20 74 6f 20 77 |dgp upda|ted to w|
|00001260| 6f 72 6b 20 77 69 74 68 | 20 33 32 20 62 69 74 20 |ork with| 32 bit |
|00001270| 51 75 69 63 6b 44 72 61 | 77 2c 20 69 66 20 70 72 |QuickDra|w, if pr|
|00001280| 65 73 65 6e 74 2e 0d 31 | 30 2f 31 35 2f 39 30 20 |esent..1|0/15/90 |
|00001290| 62 66 20 72 65 6e 61 6d | 65 64 20 74 6f 20 53 65 |bf renam|ed to Se|
|000012a0| 74 49 50 69 78 65 6c 47 | 57 2e 63 20 61 6e 64 20 |tIPixelG|W.c and |
|000012b0| 6d 6f 64 69 66 69 65 64 | 20 66 6f 72 20 64 72 61 |modified| for dra|
|000012c0| 77 69 6e 67 20 74 6f 20 | 6f 66 66 20 73 63 72 65 |wing to |off scre|
|000012d0| 65 6e 20 70 69 78 20 6d | 61 70 73 2e 0d 34 2f 32 |en pix m|aps..4/2|
|000012e0| 36 2f 39 32 09 64 67 70 | 09 4d 65 72 67 65 64 20 |6/92.dgp|.Merged |
|000012f0| 74 68 65 20 74 77 6f 20 | 76 61 72 69 61 6e 74 73 |the two |variants|
|00001300| 3a 20 53 65 74 49 50 69 | 78 65 6c 2e 63 20 61 6e |: SetIPi|xel.c an|
|00001310| 64 20 53 65 74 49 50 69 | 78 65 6c 47 57 2e 63 20 |d SetIPi|xelGW.c |
|00001320| 74 6f 20 70 72 6f 64 75 | 63 65 20 74 68 65 0d 09 |to produ|ce the..|
|00001330| 09 09 6e 65 77 20 66 69 | 6c 65 20 53 65 74 4f 6e |..new fi|le SetOn|
|00001340| 65 50 69 78 65 6c 2e 63 | 2e 20 52 65 6e 61 6d 65 |ePixel.c|. Rename|
|00001350| 64 20 65 78 69 73 74 69 | 6e 67 20 72 6f 75 74 69 |d existi|ng routi|
|00001360| 6e 65 73 20 74 6f 20 53 | 65 74 50 69 78 6d 61 70 |nes to S|etPixmap|
|00001370| 50 69 78 65 6c 2c 0d 09 | 09 09 47 65 74 50 69 78 |Pixel,..|..GetPix|
|00001380| 6d 61 70 50 69 78 65 6c | 2c 53 65 74 44 65 76 69 |mapPixel|,SetDevi|
|00001390| 63 65 50 69 78 65 6c 2c | 47 65 74 44 65 76 69 63 |cePixel,|GetDevic|
|000013a0| 65 50 69 78 65 6c 2e 20 | 41 64 64 65 64 20 53 65 |ePixel. |Added Se|
|000013b0| 74 4f 6e 65 50 69 78 65 | 6c 20 61 6e 64 20 0d 09 |tOnePixe|l and ..|
|000013c0| 09 09 47 65 74 4f 6e 65 | 50 69 78 65 6c 2e 20 47 |..GetOne|Pixel. G|
|000013d0| 65 6e 65 72 61 6c 69 7a | 65 64 20 74 6f 20 68 61 |eneraliz|ed to ha|
|000013e0| 6e 64 6c 65 20 61 6e 79 | 20 70 69 78 65 6c 53 69 |ndle any| pixelSi|
|000013f0| 7a 65 2c 20 61 6e 64 20 | 61 63 63 65 70 74 20 62 |ze, and |accept b|
|00001400| 69 74 6d 61 70 73 20 61 | 73 20 77 65 6c 6c 0d 09 |itmaps a|s well..|
|00001410| 09 09 61 73 20 70 69 78 | 6d 61 70 73 2e 0d 31 32 |..as pix|maps..12|
|00001420| 2f 32 33 2f 39 32 20 64 | 67 70 20 44 6f 75 62 6c |/23/92 d|gp Doubl|
|00001430| 65 64 20 74 68 65 20 73 | 70 65 65 64 20 6f 66 20 |ed the s|peed of |
|00001440| 53 65 74 50 69 78 6d 61 | 70 50 69 78 65 6c 20 61 |SetPixma|pPixel a|
|00001450| 6e 64 20 47 65 74 50 69 | 78 6d 61 70 50 69 78 65 |nd GetPi|xmapPixe|
|00001460| 6c 20 28 61 6e 64 20 74 | 68 75 73 20 73 70 65 64 |l (and t|hus sped|
|00001470| 20 75 70 0d 09 09 09 61 | 6c 6c 20 74 68 65 20 72 | up....a|ll the r|
|00001480| 6f 75 74 69 6e 65 73 20 | 74 68 61 74 20 63 61 6c |outines |that cal|
|00001490| 6c 20 74 68 65 6d 29 20 | 62 79 20 63 61 63 68 69 |l them) |by cachi|
|000014a0| 6e 67 20 74 68 65 20 61 | 6e 73 77 65 72 73 20 66 |ng the a|nswers f|
|000014b0| 72 6f 6d 20 52 65 63 74 | 54 6f 41 64 64 72 65 73 |rom Rect|ToAddres|
|000014c0| 73 2e 20 0d 31 2f 36 2f | 39 33 20 64 67 70 09 46 |s. .1/6/|93 dgp.F|
|000014d0| 69 78 65 64 20 74 69 6e | 79 20 62 75 74 20 64 69 |ixed tin|y but di|
|000014e0| 73 61 73 74 72 6f 75 73 | 20 62 75 67 20 69 6e 20 |sastrous| bug in |
|000014f0| 47 65 74 50 69 78 6d 61 | 70 50 69 78 65 6c 20 28 |GetPixma|pPixel (|
|00001500| 77 61 73 6e 27 74 20 73 | 61 76 69 6e 67 20 6f 6c |wasn't s|aving ol|
|00001510| 64 20 78 20 61 6e 64 20 | 79 29 2e 0d 31 2f 32 32 |d x and |y)..1/22|
|00001520| 2f 39 33 09 64 67 70 09 | 43 68 65 63 6b 20 6d 6f |/93.dgp.|Check mo|
|00001530| 72 65 20 50 69 78 4d 61 | 70 20 66 69 65 6c 64 73 |re PixMa|p fields|
|00001540| 20 74 6f 20 6d 61 6b 65 | 20 73 75 72 65 20 63 61 | to make| sure ca|
|00001550| 63 68 65 20 69 73 20 6e | 6f 74 20 73 74 61 6c 65 |che is n|ot stale|
|00001560| 2e 0d 32 2f 37 2f 39 33 | 09 64 67 70 20 57 72 6f |..2/7/93|.dgp Wro|
|00001570| 74 65 20 53 65 74 50 69 | 78 65 6c 73 51 75 69 63 |te SetPi|xelsQuic|
|00001580| 6b 6c 79 2e 63 0d 32 2f | 38 2f 39 33 09 64 67 70 |kly.c.2/|8/93.dgp|
|00001590| 20 49 72 6f 6e 65 64 20 | 6f 75 74 20 73 6f 6d 65 | Ironed |out some|
|000015a0| 20 77 72 69 6e 6b 6c 65 | 73 20 69 6e 20 74 68 65 | wrinkle|s in the|
|000015b0| 20 63 6c 69 70 70 69 6e | 67 2e 0d 2a 2f 0d 23 69 | clippin|g..*/.#i|
|000015c0| 6e 63 6c 75 64 65 20 22 | 56 69 64 65 6f 54 6f 6f |nclude "|VideoToo|
|000015d0| 6c 62 6f 78 2e 68 22 0d | 23 64 65 66 69 6e 65 20 |lbox.h".|#define |
|000015e0| 55 53 45 5f 43 41 43 48 | 45 20 31 09 2f 2f 20 73 |USE_CACH|E 1.// s|
|000015f0| 65 74 20 74 6f 20 7a 65 | 72 6f 20 74 6f 20 64 69 |et to ze|ro to di|
|00001600| 73 61 62 6c 65 20 63 61 | 63 68 65 0d 0d 69 6e 74 |sable ca|che..int|
|00001610| 20 53 65 74 50 69 78 65 | 6c 73 51 75 69 63 6b 6c | SetPixe|lsQuickl|
|00001620| 79 28 69 6e 74 20 78 2c | 69 6e 74 20 79 2c 75 6e |y(int x,|int y,un|
|00001630| 73 69 67 6e 65 64 20 6c | 6f 6e 67 20 76 61 6c 75 |signed l|ong valu|
|00001640| 65 5b 5d 2c 73 68 6f 72 | 74 20 6e 29 0d 2f 2f 20 |e[],shor|t n).// |
|00001650| 28 78 2c 79 29 20 69 73 | 20 69 6e 20 74 68 65 20 |(x,y) is| in the |
|00001660| 6c 6f 63 61 6c 20 63 6f | 6f 72 64 69 6e 61 74 65 |local co|ordinate|
|00001670| 20 73 79 73 74 65 6d 20 | 6f 66 20 74 68 65 20 63 | system |of the c|
|00001680| 75 72 72 65 6e 74 20 70 | 6f 72 74 2e 0d 7b 0d 09 |urrent p|ort..{..|
|00001690| 57 69 6e 64 6f 77 50 74 | 72 20 77 69 6e 64 6f 77 |WindowPt|r window|
|000016a0| 3b 0d 0d 09 47 65 74 50 | 6f 72 74 28 26 77 69 6e |;...GetP|ort(&win|
|000016b0| 64 6f 77 29 3b 0d 09 72 | 65 74 75 72 6e 20 53 65 |dow);..r|eturn Se|
|000016c0| 74 57 69 6e 64 6f 77 50 | 69 78 65 6c 73 51 75 69 |tWindowP|ixelsQui|
|000016d0| 63 6b 6c 79 28 77 69 6e | 64 6f 77 2c 78 2c 79 2c |ckly(win|dow,x,y,|
|000016e0| 76 61 6c 75 65 2c 6e 29 | 3b 0d 7d 0d 0d 69 6e 74 |value,n)|;.}..int|
|000016f0| 20 47 65 74 50 69 78 65 | 6c 73 51 75 69 63 6b 6c | GetPixe|lsQuickl|
|00001700| 79 28 69 6e 74 20 78 2c | 69 6e 74 20 79 2c 75 6e |y(int x,|int y,un|
|00001710| 73 69 67 6e 65 64 20 6c | 6f 6e 67 20 76 61 6c 75 |signed l|ong valu|
|00001720| 65 5b 5d 2c 73 68 6f 72 | 74 20 6e 29 0d 2f 2f 20 |e[],shor|t n).// |
|00001730| 28 78 2c 79 29 20 69 73 | 20 69 6e 20 74 68 65 20 |(x,y) is| in the |
|00001740| 6c 6f 63 61 6c 20 63 6f | 6f 72 64 69 6e 61 74 65 |local co|ordinate|
|00001750| 20 73 79 73 74 65 6d 20 | 6f 66 20 74 68 65 20 63 | system |of the c|
|00001760| 75 72 72 65 6e 74 20 70 | 6f 72 74 2e 0d 7b 0d 09 |urrent p|ort..{..|
|00001770| 57 69 6e 64 6f 77 50 74 | 72 20 77 69 6e 64 6f 77 |WindowPt|r window|
|00001780| 3b 0d 0d 09 47 65 74 50 | 6f 72 74 28 26 77 69 6e |;...GetP|ort(&win|
|00001790| 64 6f 77 29 3b 0d 09 72 | 65 74 75 72 6e 20 47 65 |dow);..r|eturn Ge|
|000017a0| 74 57 69 6e 64 6f 77 50 | 69 78 65 6c 73 51 75 69 |tWindowP|ixelsQui|
|000017b0| 63 6b 6c 79 28 77 69 6e | 64 6f 77 2c 78 2c 79 2c |ckly(win|dow,x,y,|
|000017c0| 76 61 6c 75 65 2c 6e 29 | 3b 0d 7d 0d 0d 69 6e 74 |value,n)|;.}..int|
|000017d0| 20 53 65 74 57 69 6e 64 | 6f 77 50 69 78 65 6c 73 | SetWind|owPixels|
|000017e0| 51 75 69 63 6b 6c 79 28 | 57 69 6e 64 6f 77 50 74 |Quickly(|WindowPt|
|000017f0| 72 20 77 69 6e 64 6f 77 | 2c 69 6e 74 20 78 2c 69 |r window|,int x,i|
|00001800| 6e 74 20 79 2c 75 6e 73 | 69 67 6e 65 64 20 6c 6f |nt y,uns|igned lo|
|00001810| 6e 67 20 2a 76 61 6c 75 | 65 2c 73 68 6f 72 74 20 |ng *valu|e,short |
|00001820| 6e 29 0d 2f 2f 20 28 78 | 2c 79 29 20 69 73 20 69 |n).// (x|,y) is i|
|00001830| 6e 20 74 68 65 20 6c 6f | 63 61 6c 20 63 6f 6f 72 |n the lo|cal coor|
|00001840| 64 69 6e 61 74 65 20 73 | 79 73 74 65 6d 20 6f 66 |dinate s|ystem of|
|00001850| 20 74 68 65 20 77 69 6e | 64 6f 77 2e 0d 2f 2f 20 | the win|dow..// |
|00001860| 41 63 63 65 70 74 73 20 | 65 69 74 68 65 72 20 57 |Accepts |either W|
|00001870| 69 6e 64 6f 77 50 74 72 | 20 6f 72 20 43 57 69 6e |indowPtr| or CWin|
|00001880| 64 6f 77 50 74 72 2e 0d | 7b 0d 09 50 69 78 4d 61 |dowPtr..|{..PixMa|
|00001890| 70 50 74 72 20 70 6d 3b | 0d 09 52 65 63 74 20 72 |pPtr pm;|..Rect r|
|000018a0| 3b 0d 09 0d 09 69 66 28 | 77 69 6e 64 6f 77 3d 3d |;....if(|window==|
|000018b0| 4e 55 4c 4c 29 72 65 74 | 75 72 6e 20 31 3b 0d 09 |NULL)ret|urn 1;..|
|000018c0| 0d 09 2f 2f 20 43 6c 69 | 70 20 74 6f 20 70 6f 72 |..// Cli|p to por|
|000018d0| 74 52 65 63 74 2e 0d 09 | 53 65 74 52 65 63 74 28 |tRect...|SetRect(|
|000018e0| 26 72 2c 78 2c 79 2c 78 | 2b 6e 2c 79 2b 31 29 3b |&r,x,y,x|+n,y+1);|
|000018f0| 0d 09 69 66 28 21 53 65 | 63 74 52 65 63 74 28 26 |..if(!Se|ctRect(&|
|00001900| 77 69 6e 64 6f 77 2d 3e | 70 6f 72 74 52 65 63 74 |window->|portRect|
|00001910| 2c 26 72 2c 26 72 29 29 | 72 65 74 75 72 6e 20 30 |,&r,&r))|return 0|
|00001920| 3b 0d 09 76 61 6c 75 65 | 2b 3d 72 2e 6c 65 66 74 |;..value|+=r.left|
|00001930| 2d 78 3b 0d 09 78 3d 72 | 2e 6c 65 66 74 3b 0d 09 |-x;..x=r|.left;..|
|00001940| 6e 3d 72 2e 72 69 67 68 | 74 2d 72 2e 6c 65 66 74 |n=r.righ|t-r.left|
|00001950| 3b 0d 09 0d 09 2f 2f 20 | 49 73 20 69 74 20 61 20 |;....// |Is it a |
|00001960| 43 47 72 61 66 50 6f 72 | 74 20 6f 72 20 61 20 47 |CGrafPor|t or a G|
|00001970| 72 61 66 50 6f 72 74 3f | 0d 09 69 66 28 28 28 43 |rafPort?|..if(((C|
|00001980| 47 72 61 66 50 74 72 29 | 77 69 6e 64 6f 77 29 2d |GrafPtr)|window)-|
|00001990| 3e 70 6f 72 74 56 65 72 | 73 69 6f 6e 3c 30 29 09 |>portVer|sion<0).|
|000019a0| 09 2f 2f 20 49 74 27 73 | 20 61 20 43 47 72 61 66 |.// It's| a CGraf|
|000019b0| 50 6f 72 74 2c 20 70 61 | 73 73 20 70 69 78 6d 61 |Port, pa|ss pixma|
|000019c0| 70 20 70 74 72 2e 0d 09 | 09 70 6d 20 3d 20 2a 28 |p ptr...|.pm = *(|
|000019d0| 28 43 47 72 61 66 50 74 | 72 29 77 69 6e 64 6f 77 |(CGrafPt|r)window|
|000019e0| 29 2d 3e 70 6f 72 74 50 | 69 78 4d 61 70 3b 0d 09 |)->portP|ixMap;..|
|000019f0| 65 6c 73 65 20 09 09 09 | 09 09 09 09 09 09 09 2f |else ...|......./|
|00001a00| 2f 20 49 74 27 73 20 61 | 20 47 72 61 66 50 6f 72 |/ It's a| GrafPor|
|00001a10| 74 2c 20 70 61 73 73 20 | 62 69 74 6d 61 70 20 70 |t, pass |bitmap p|
|00001a20| 74 72 2e 0d 09 09 70 6d | 20 3d 20 28 50 69 78 4d |tr....pm| = (PixM|
|00001a30| 61 70 50 74 72 29 20 26 | 77 69 6e 64 6f 77 2d 3e |apPtr) &|window->|
|00001a40| 70 6f 72 74 42 69 74 73 | 3b 0d 09 72 65 74 75 72 |portBits|;..retur|
|00001a50| 6e 20 53 65 74 50 69 78 | 6d 61 70 50 69 78 65 6c |n SetPix|mapPixel|
|00001a60| 73 51 75 69 63 6b 6c 79 | 28 70 6d 2c 78 2c 79 2c |sQuickly|(pm,x,y,|
|00001a70| 76 61 6c 75 65 2c 6e 29 | 3b 0d 7d 0d 0d 69 6e 74 |value,n)|;.}..int|
|00001a80| 20 47 65 74 57 69 6e 64 | 6f 77 50 69 78 65 6c 73 | GetWind|owPixels|
|00001a90| 51 75 69 63 6b 6c 79 28 | 57 69 6e 64 6f 77 50 74 |Quickly(|WindowPt|
|00001aa0| 72 20 77 69 6e 64 6f 77 | 2c 69 6e 74 20 78 2c 69 |r window|,int x,i|
|00001ab0| 6e 74 20 79 2c 75 6e 73 | 69 67 6e 65 64 20 6c 6f |nt y,uns|igned lo|
|00001ac0| 6e 67 20 2a 76 61 6c 75 | 65 2c 73 68 6f 72 74 20 |ng *valu|e,short |
|00001ad0| 6e 29 0d 2f 2f 20 28 78 | 2c 79 29 20 69 73 20 69 |n).// (x|,y) is i|
|00001ae0| 6e 20 74 68 65 20 6c 6f | 63 61 6c 20 63 6f 6f 72 |n the lo|cal coor|
|00001af0| 64 69 6e 61 74 65 20 73 | 79 73 74 65 6d 20 6f 66 |dinate s|ystem of|
|00001b00| 20 74 68 65 20 77 69 6e | 64 6f 77 2e 0d 2f 2f 20 | the win|dow..// |
|00001b10| 41 63 63 65 70 74 73 20 | 57 69 6e 64 6f 77 50 74 |Accepts |WindowPt|
|00001b20| 72 20 6f 72 20 43 57 69 | 6e 64 6f 77 50 74 72 2e |r or CWi|ndowPtr.|
|00001b30| 0d 7b 0d 09 50 69 78 4d | 61 70 50 74 72 20 70 6d |.{..PixM|apPtr pm|
|00001b40| 3b 0d 09 69 6e 74 20 65 | 72 72 6f 72 3d 30 3b 0d |;..int e|rror=0;.|
|00001b50| 09 52 65 63 74 20 72 3b | 0d 0d 09 69 66 28 77 69 |.Rect r;|...if(wi|
|00001b60| 6e 64 6f 77 3d 3d 4e 55 | 4c 4c 29 72 65 74 75 72 |ndow==NU|LL)retur|
|00001b70| 6e 20 31 3b 0d 09 0d 09 | 2f 2f 20 43 6c 69 70 20 |n 1;....|// Clip |
|00001b80| 74 6f 20 70 6f 72 74 52 | 65 63 74 2e 0d 09 53 65 |to portR|ect...Se|
|00001b90| 74 52 65 63 74 28 26 72 | 2c 78 2c 79 2c 78 2b 6e |tRect(&r|,x,y,x+n|
|00001ba0| 2c 79 2b 31 29 3b 0d 09 | 69 66 28 21 53 65 63 74 |,y+1);..|if(!Sect|
|00001bb0| 52 65 63 74 28 26 77 69 | 6e 64 6f 77 2d 3e 70 6f |Rect(&wi|ndow->po|
|00001bc0| 72 74 52 65 63 74 2c 26 | 72 2c 26 72 29 29 72 65 |rtRect,&|r,&r))re|
|00001bd0| 74 75 72 6e 20 31 3b 0d | 09 69 66 28 78 21 3d 72 |turn 1;.|.if(x!=r|
|00001be0| 2e 6c 65 66 74 20 7c 7c | 20 78 2b 6e 21 3d 72 2e |.left ||| x+n!=r.|
|00001bf0| 72 69 67 68 74 29 7b 09 | 2f 2f 20 55 70 64 61 74 |right){.|// Updat|
|00001c00| 65 20 61 66 74 65 72 20 | 63 6c 69 70 70 69 6e 67 |e after |clipping|
|00001c10| 2e 0d 09 09 65 72 72 6f | 72 3d 31 3b 0d 09 09 76 |....erro|r=1;...v|
|00001c20| 61 6c 75 65 2b 3d 72 2e | 6c 65 66 74 2d 78 3b 0d |alue+=r.|left-x;.|
|00001c30| 09 09 78 3d 72 2e 6c 65 | 66 74 3b 0d 09 09 6e 3d |..x=r.le|ft;...n=|
|00001c40| 72 2e 72 69 67 68 74 2d | 72 2e 6c 65 66 74 3b 0d |r.right-|r.left;.|
|00001c50| 09 7d 0d 09 0d 09 2f 2f | 20 49 73 20 69 74 20 61 |.}....//| Is it a|
|00001c60| 20 43 47 72 61 66 50 6f | 72 74 20 6f 72 20 61 20 | CGrafPo|rt or a |
|00001c70| 47 72 61 66 50 6f 72 74 | 3f 0d 09 69 66 28 28 28 |GrafPort|?..if(((|
|00001c80| 43 47 72 61 66 50 74 72 | 29 77 69 6e 64 6f 77 29 |CGrafPtr|)window)|
|00001c90| 2d 3e 70 6f 72 74 56 65 | 72 73 69 6f 6e 3c 30 29 |->portVe|rsion<0)|
|00001ca0| 09 09 2f 2f 20 49 74 27 | 73 20 61 20 43 47 72 61 |..// It'|s a CGra|
|00001cb0| 66 50 6f 72 74 2c 20 70 | 61 73 73 20 70 69 78 6d |fPort, p|ass pixm|
|00001cc0| 61 70 20 70 74 72 2e 0d | 09 09 70 6d 20 3d 20 2a |ap ptr..|..pm = *|
|00001cd0| 28 28 43 47 72 61 66 50 | 74 72 29 77 69 6e 64 6f |((CGrafP|tr)windo|
|00001ce0| 77 29 2d 3e 70 6f 72 74 | 50 69 78 4d 61 70 3b 0d |w)->port|PixMap;.|
|00001cf0| 09 65 6c 73 65 20 09 09 | 09 09 09 09 09 09 09 09 |.else ..|........|
|00001d00| 2f 2f 20 49 74 27 73 20 | 61 20 47 72 61 66 50 6f |// It's |a GrafPo|
|00001d10| 72 74 2c 20 70 61 73 73 | 20 62 69 74 6d 61 70 20 |rt, pass| bitmap |
|00001d20| 70 74 72 2e 0d 09 09 70 | 6d 20 3d 20 28 50 69 78 |ptr....p|m = (Pix|
|00001d30| 4d 61 70 50 74 72 29 20 | 26 77 69 6e 64 6f 77 2d |MapPtr) |&window-|
|00001d40| 3e 70 6f 72 74 42 69 74 | 73 3b 0d 09 65 72 72 6f |>portBit|s;..erro|
|00001d50| 72 7c 3d 47 65 74 50 69 | 78 6d 61 70 50 69 78 65 |r|=GetPi|xmapPixe|
|00001d60| 6c 73 51 75 69 63 6b 6c | 79 28 70 6d 2c 78 2c 79 |lsQuickl|y(pm,x,y|
|00001d70| 2c 76 61 6c 75 65 2c 6e | 29 3b 0d 09 72 65 74 75 |,value,n|);..retu|
|00001d80| 72 6e 20 65 72 72 6f 72 | 3b 0d 7d 0d 0d 69 6e 74 |rn error|;.}..int|
|00001d90| 20 53 65 74 44 65 76 69 | 63 65 50 69 78 65 6c 73 | SetDevi|cePixels|
|00001da0| 51 75 69 63 6b 6c 79 28 | 47 44 48 61 6e 64 6c 65 |Quickly(|GDHandle|
|00001db0| 20 64 65 76 69 63 65 2c | 69 6e 74 20 78 2c 69 6e | device,|int x,in|
|00001dc0| 74 20 79 2c 75 6e 73 69 | 67 6e 65 64 20 6c 6f 6e |t y,unsi|gned lon|
|00001dd0| 67 20 76 61 6c 75 65 5b | 5d 2c 73 68 6f 72 74 20 |g value[|],short |
|00001de0| 6e 29 0d 2f 2f 20 28 78 | 2c 79 29 20 69 73 20 72 |n).// (x|,y) is r|
|00001df0| 65 6c 61 74 69 76 65 20 | 74 6f 20 74 68 65 20 75 |elative |to the u|
|00001e00| 70 70 65 72 20 6c 65 66 | 74 20 68 61 6e 64 20 63 |pper lef|t hand c|
|00001e10| 6f 72 6e 65 72 20 6f 66 | 20 74 68 65 20 73 63 72 |orner of| the scr|
|00001e20| 65 65 6e 2e 0d 7b 0d 09 | 52 65 63 74 20 72 3b 0d |een..{..|Rect r;.|
|00001e30| 09 0d 09 69 66 28 64 65 | 76 69 63 65 3d 3d 4e 55 |...if(de|vice==NU|
|00001e40| 4c 4c 29 72 65 74 75 72 | 6e 20 31 3b 0d 09 78 2b |LL)retur|n 1;..x+|
|00001e50| 3d 28 2a 28 2a 64 65 76 | 69 63 65 29 2d 3e 67 64 |=(*(*dev|ice)->gd|
|00001e60| 50 4d 61 70 29 2d 3e 62 | 6f 75 6e 64 73 2e 6c 65 |PMap)->b|ounds.le|
|00001e70| 66 74 3b 0d 09 79 2b 3d | 28 2a 28 2a 64 65 76 69 |ft;..y+=|(*(*devi|
|00001e80| 63 65 29 2d 3e 67 64 50 | 4d 61 70 29 2d 3e 62 6f |ce)->gdP|Map)->bo|
|00001e90| 75 6e 64 73 2e 74 6f 70 | 3b 0d 0d 09 2f 2f 20 43 |unds.top|;...// C|
|00001ea0| 6c 69 70 20 74 6f 20 64 | 65 76 69 63 65 20 62 6f |lip to d|evice bo|
|00001eb0| 75 6e 64 73 2e 0d 09 53 | 65 74 52 65 63 74 28 26 |unds...S|etRect(&|
|00001ec0| 72 2c 78 2c 79 2c 78 2b | 6e 2c 79 2b 31 29 3b 0d |r,x,y,x+|n,y+1);.|
|00001ed0| 09 69 66 28 21 53 65 63 | 74 52 65 63 74 28 26 28 |.if(!Sec|tRect(&(|
|00001ee0| 2a 28 2a 64 65 76 69 63 | 65 29 2d 3e 67 64 50 4d |*(*devic|e)->gdPM|
|00001ef0| 61 70 29 2d 3e 62 6f 75 | 6e 64 73 2c 26 72 2c 26 |ap)->bou|nds,&r,&|
|00001f00| 72 29 29 72 65 74 75 72 | 6e 20 30 3b 0d 09 76 61 |r))retur|n 0;..va|
|00001f10| 6c 75 65 2b 3d 72 2e 6c | 65 66 74 2d 78 3b 09 2f |lue+=r.l|eft-x;./|
|00001f20| 2f 20 55 70 64 61 74 65 | 20 61 66 74 65 72 20 63 |/ Update| after c|
|00001f30| 6c 69 70 70 69 6e 67 2e | 0d 09 78 3d 72 2e 6c 65 |lipping.|..x=r.le|
|00001f40| 66 74 3b 0d 09 6e 3d 72 | 2e 72 69 67 68 74 2d 72 |ft;..n=r|.right-r|
|00001f50| 2e 6c 65 66 74 3b 0d 09 | 0d 09 72 65 74 75 72 6e |.left;..|..return|
|00001f60| 20 53 65 74 50 69 78 6d | 61 70 50 69 78 65 6c 73 | SetPixm|apPixels|
|00001f70| 51 75 69 63 6b 6c 79 28 | 2a 28 2a 64 65 76 69 63 |Quickly(|*(*devic|
|00001f80| 65 29 2d 3e 67 64 50 4d | 61 70 2c 78 2c 79 2c 76 |e)->gdPM|ap,x,y,v|
|00001f90| 61 6c 75 65 2c 6e 29 3b | 0d 7d 0d 0d 69 6e 74 20 |alue,n);|.}..int |
|00001fa0| 47 65 74 44 65 76 69 63 | 65 50 69 78 65 6c 73 51 |GetDevic|ePixelsQ|
|00001fb0| 75 69 63 6b 6c 79 28 47 | 44 48 61 6e 64 6c 65 20 |uickly(G|DHandle |
|00001fc0| 64 65 76 69 63 65 2c 69 | 6e 74 20 78 2c 69 6e 74 |device,i|nt x,int|
|00001fd0| 20 79 2c 75 6e 73 69 67 | 6e 65 64 20 6c 6f 6e 67 | y,unsig|ned long|
|00001fe0| 20 76 61 6c 75 65 5b 5d | 2c 73 68 6f 72 74 20 6e | value[]|,short n|
|00001ff0| 29 0d 2f 2f 20 28 78 2c | 79 29 20 69 73 20 72 65 |).// (x,|y) is re|
|00002000| 6c 61 74 69 76 65 20 74 | 6f 20 74 68 65 20 75 70 |lative t|o the up|
|00002010| 70 65 72 20 6c 65 66 74 | 20 68 61 6e 64 20 63 6f |per left| hand co|
|00002020| 72 6e 65 72 20 6f 66 20 | 74 68 65 20 73 63 72 65 |rner of |the scre|
|00002030| 65 6e 2e 0d 7b 0d 09 69 | 6e 74 20 65 72 72 6f 72 |en..{..i|nt error|
|00002040| 3d 31 3b 0d 09 52 65 63 | 74 20 72 3b 0d 09 0d 09 |=1;..Rec|t r;....|
|00002050| 69 66 28 64 65 76 69 63 | 65 3d 3d 4e 55 4c 4c 29 |if(devic|e==NULL)|
|00002060| 72 65 74 75 72 6e 20 31 | 3b 0d 09 78 2b 3d 28 2a |return 1|;..x+=(*|
|00002070| 28 2a 64 65 76 69 63 65 | 29 2d 3e 67 64 50 4d 61 |(*device|)->gdPMa|
|00002080| 70 29 2d 3e 62 6f 75 6e | 64 73 2e 6c 65 66 74 3b |p)->boun|ds.left;|
|00002090| 0d 09 79 2b 3d 28 2a 28 | 2a 64 65 76 69 63 65 29 |..y+=(*(|*device)|
|000020a0| 2d 3e 67 64 50 4d 61 70 | 29 2d 3e 62 6f 75 6e 64 |->gdPMap|)->bound|
|000020b0| 73 2e 74 6f 70 3b 0d 09 | 0d 09 2f 2f 20 43 6c 69 |s.top;..|..// Cli|
|000020c0| 70 20 74 6f 20 64 65 76 | 69 63 65 20 62 6f 75 6e |p to dev|ice boun|
|000020d0| 64 73 2e 0d 09 53 65 74 | 52 65 63 74 28 26 72 2c |ds...Set|Rect(&r,|
|000020e0| 78 2c 79 2c 78 2b 6e 2c | 79 2b 31 29 3b 0d 09 69 |x,y,x+n,|y+1);..i|
|000020f0| 66 28 21 53 65 63 74 52 | 65 63 74 28 26 28 2a 28 |f(!SectR|ect(&(*(|
|00002100| 2a 64 65 76 69 63 65 29 | 2d 3e 67 64 50 4d 61 70 |*device)|->gdPMap|
|00002110| 29 2d 3e 62 6f 75 6e 64 | 73 2c 26 72 2c 26 72 29 |)->bound|s,&r,&r)|
|00002120| 29 72 65 74 75 72 6e 20 | 31 3b 0d 09 69 66 28 78 |)return |1;..if(x|
|00002130| 21 3d 72 2e 6c 65 66 74 | 20 7c 7c 20 78 2b 6e 21 |!=r.left| || x+n!|
|00002140| 3d 72 2e 72 69 67 68 74 | 29 7b 09 2f 2f 20 55 70 |=r.right|){.// Up|
|00002150| 64 61 74 65 20 61 66 74 | 65 72 20 63 6c 69 70 70 |date aft|er clipp|
|00002160| 69 6e 67 2e 0d 09 09 65 | 72 72 6f 72 3d 31 3b 0d |ing....e|rror=1;.|
|00002170| 09 09 76 61 6c 75 65 2b | 3d 72 2e 6c 65 66 74 2d |..value+|=r.left-|
|00002180| 78 3b 0d 09 09 78 3d 72 | 2e 6c 65 66 74 3b 0d 09 |x;...x=r|.left;..|
|00002190| 09 6e 3d 72 2e 72 69 67 | 68 74 2d 72 2e 6c 65 66 |.n=r.rig|ht-r.lef|
|000021a0| 74 3b 0d 09 7d 0d 09 65 | 72 72 6f 72 7c 3d 47 65 |t;..}..e|rror|=Ge|
|000021b0| 74 50 69 78 6d 61 70 50 | 69 78 65 6c 73 51 75 69 |tPixmapP|ixelsQui|
|000021c0| 63 6b 6c 79 28 2a 28 2a | 64 65 76 69 63 65 29 2d |ckly(*(*|device)-|
|000021d0| 3e 67 64 50 4d 61 70 2c | 78 2c 79 2c 76 61 6c 75 |>gdPMap,|x,y,valu|
|000021e0| 65 2c 6e 29 3b 0d 09 72 | 65 74 75 72 6e 20 65 72 |e,n);..r|eturn er|
|000021f0| 72 6f 72 3b 0d 7d 0d 0d | 69 6e 74 20 53 65 74 50 |ror;.}..|int SetP|
|00002200| 69 78 6d 61 70 50 69 78 | 65 6c 73 51 75 69 63 6b |ixmapPix|elsQuick|
|00002210| 6c 79 28 50 69 78 4d 61 | 70 50 74 72 20 70 6d 50 |ly(PixMa|pPtr pmP|
|00002220| 74 72 2c 69 6e 74 20 78 | 2c 69 6e 74 20 79 2c 75 |tr,int x|,int y,u|
|00002230| 6e 73 69 67 6e 65 64 20 | 6c 6f 6e 67 20 76 61 6c |nsigned |long val|
|00002240| 75 65 5b 5d 0d 09 2c 72 | 65 67 69 73 74 65 72 20 |ue[]..,r|egister |
|00002250| 73 68 6f 72 74 20 6e 29 | 0d 2f 2f 20 50 6f 6b 65 |short n)|.// Poke|
|00002260| 73 20 61 20 72 6f 77 20 | 6f 66 20 70 69 78 65 6c |s a row |of pixel|
|00002270| 73 2e 20 41 63 63 65 70 | 74 73 20 65 69 74 68 65 |s. Accep|ts eithe|
|00002280| 72 20 70 69 78 6d 61 70 | 20 6f 72 20 62 69 74 6d |r pixmap| or bitm|
|00002290| 61 70 20 70 6f 69 6e 74 | 65 72 2e 0d 2f 2f 20 28 |ap point|er..// (|
|000022a0| 78 2c 79 29 20 69 73 20 | 69 6e 20 74 68 65 20 63 |x,y) is |in the c|
|000022b0| 6f 6f 72 64 69 6e 61 74 | 65 20 73 79 73 74 65 6d |oordinat|e system|
|000022c0| 20 6f 66 20 74 68 65 20 | 62 69 74 2f 70 69 78 6d | of the |bit/pixm|
|000022d0| 61 70 2e 0d 2f 2f 20 53 | 70 65 65 64 20 69 73 20 |ap..// S|peed is |
|000022e0| 65 6e 68 61 6e 63 65 64 | 20 62 79 20 72 65 75 73 |enhanced| by reus|
|000022f0| 69 6e 67 20 74 68 65 20 | 63 61 63 68 65 64 20 69 |ing the |cached i|
|00002300| 6e 66 6f 72 6d 61 74 69 | 6f 6e 20 66 72 6f 6d 20 |nformati|on from |
|00002310| 6c 61 73 74 20 74 69 6d | 65 20 69 66 20 69 74 27 |last tim|e if it'|
|00002320| 73 20 74 68 65 0d 2f 2f | 20 73 61 6d 65 20 50 69 |s the.//| same Pi|
|00002330| 78 2f 42 69 74 6d 61 70 | 20 61 73 20 6c 61 73 74 |x/Bitmap| as last|
|00002340| 20 74 69 6d 65 2c 20 69 | 2e 65 2e 20 73 61 6d 65 | time, i|.e. same|
|00002350| 20 61 64 64 72 65 73 73 | 2c 20 62 61 73 65 41 64 | address|, baseAd|
|00002360| 64 72 2c 72 6f 77 42 79 | 74 65 73 2c 20 61 6e 64 |dr,rowBy|tes, and|
|00002370| 20 62 6f 75 6e 64 73 2e | 0d 2f 2f 20 59 6f 75 20 | bounds.|.// You |
|00002380| 63 61 6e 20 66 6f 72 63 | 65 20 69 74 20 74 6f 20 |can forc|e it to |
|00002390| 66 6c 75 73 68 20 69 74 | 73 20 63 61 63 68 65 20 |flush it|s cache |
|000023a0| 62 79 20 70 61 73 73 69 | 6e 67 20 61 20 4e 55 4c |by passi|ng a NUL|
|000023b0| 4c 20 62 69 74 2f 70 69 | 78 6d 61 70 20 70 6f 69 |L bit/pi|xmap poi|
|000023c0| 6e 74 65 72 2e 0d 7b 0d | 09 73 74 61 74 69 63 20 |nter..{.|.static |
|000023d0| 50 69 78 4d 61 70 50 74 | 72 20 6f 6c 64 50 6d 50 |PixMapPt|r oldPmP|
|000023e0| 74 72 3d 28 50 69 78 4d | 61 70 50 74 72 29 2d 31 |tr=(PixM|apPtr)-1|
|000023f0| 3b 0d 09 73 74 61 74 69 | 63 20 69 6e 74 20 6f 6c |;..stati|c int ol|
|00002400| 64 58 2c 6f 6c 64 59 3b | 0d 09 73 74 61 74 69 63 |dX,oldY;|..static|
|00002410| 20 73 68 6f 72 74 20 72 | 6f 77 42 79 74 65 73 2c | short r|owBytes,|
|00002420| 6c 6f 67 50 69 78 65 6c | 53 69 7a 65 2c 62 69 74 |logPixel|Size,bit|
|00002430| 73 4f 66 66 73 65 74 3b | 0d 09 73 74 61 74 69 63 |sOffset;|..static|
|00002440| 20 75 6e 73 69 67 6e 65 | 64 20 63 68 61 72 20 2a | unsigne|d char *|
|00002450| 70 69 78 65 6c 50 74 72 | 3b 0d 09 73 74 61 74 69 |pixelPtr|;..stati|
|00002460| 63 20 42 69 74 4d 61 70 | 20 6f 6c 64 4d 61 70 3b |c BitMap| oldMap;|
|00002470| 0d 09 73 74 61 74 69 63 | 20 50 74 72 20 6d 61 69 |..static| Ptr mai|
|00002480| 6e 42 61 73 65 41 64 64 | 72 3d 4e 55 4c 4c 3b 0d |nBaseAdd|r=NULL;.|
|00002490| 09 69 6e 74 20 73 68 69 | 66 74 2c 65 72 72 6f 72 |.int shi|ft,error|
|000024a0| 3d 30 3b 0d 09 75 6e 73 | 69 67 6e 65 64 20 63 68 |=0;..uns|igned ch|
|000024b0| 61 72 20 6d 61 73 6b 3b | 0d 09 63 68 61 72 20 6d |ar mask;|..char m|
|000024c0| 6f 64 65 33 32 3d 74 72 | 75 65 33 32 62 3b 0d 09 |ode32=tr|ue32b;..|
|000024d0| 52 65 63 74 20 72 3b 0d | 09 0d 09 2f 2f 20 43 6c |Rect r;.|...// Cl|
|000024e0| 69 70 20 74 6f 20 70 69 | 78 2f 62 69 74 6d 61 70 |ip to pi|x/bitmap|
|000024f0| 20 62 6f 75 6e 64 73 2e | 0d 09 53 65 74 52 65 63 | bounds.|..SetRec|
|00002500| 74 28 26 72 2c 78 2c 79 | 2c 78 2b 6e 2c 79 2b 31 |t(&r,x,y|,x+n,y+1|
|00002510| 29 3b 0d 09 69 66 28 6d | 61 69 6e 42 61 73 65 41 |);..if(m|ainBaseA|
|00002520| 64 64 72 3d 3d 4e 55 4c | 4c 29 7b 0d 09 09 69 66 |ddr==NUL|L){...if|
|00002530| 28 51 44 38 45 78 69 73 | 74 73 28 29 29 6d 61 69 |(QD8Exis|ts())mai|
|00002540| 6e 42 61 73 65 41 64 64 | 72 3d 28 2a 28 2a 47 65 |nBaseAdd|r=(*(*Ge|
|00002550| 74 4d 61 69 6e 44 65 76 | 69 63 65 28 29 29 2d 3e |tMainDev|ice())->|
|00002560| 67 64 50 4d 61 70 29 2d | 3e 62 61 73 65 41 64 64 |gdPMap)-|>baseAdd|
|00002570| 72 3b 0d 09 09 65 6c 73 | 65 20 6d 61 69 6e 42 61 |r;...els|e mainBa|
|00002580| 73 65 41 64 64 72 3d 28 | 76 6f 69 64 20 2a 29 2d |seAddr=(|void *)-|
|00002590| 31 3b 0d 09 7d 0d 09 2f | 2f 20 43 6c 69 70 20 75 |1;..}../|/ Clip u|
|000025a0| 6e 6c 65 73 73 20 74 68 | 65 20 70 69 78 6d 61 70 |nless th|e pixmap|
|000025b0| 20 70 72 65 74 65 6e 64 | 73 20 74 6f 20 62 65 20 | pretend|s to be |
|000025c0| 74 68 65 20 6d 61 69 6e | 20 64 65 76 69 63 65 2e |the main| device.|
|000025d0| 0d 09 69 66 28 70 6d 50 | 74 72 21 3d 4e 55 4c 4c |..if(pmP|tr!=NULL|
|000025e0| 20 26 26 20 70 6d 50 74 | 72 2d 3e 62 61 73 65 41 | && pmPt|r->baseA|
|000025f0| 64 64 72 21 3d 6d 61 69 | 6e 42 61 73 65 41 64 64 |ddr!=mai|nBaseAdd|
|00002600| 72 20 0d 09 09 26 26 20 | 21 53 65 63 74 52 65 63 |r ...&& |!SectRec|
|00002610| 74 28 26 70 6d 50 74 72 | 2d 3e 62 6f 75 6e 64 73 |t(&pmPtr|->bounds|
|00002620| 2c 26 72 2c 26 72 29 29 | 72 65 74 75 72 6e 20 30 |,&r,&r))|return 0|
|00002630| 3b 09 2f 2f 20 67 6f 20 | 68 6f 6d 65 20 69 66 20 |;.// go |home if |
|00002640| 77 65 27 72 65 20 64 6f | 6e 65 0d 0d 09 69 66 28 |we're do|ne...if(|
|00002650| 21 55 53 45 5f 43 41 43 | 48 45 20 7c 7c 20 70 6d |!USE_CAC|HE || pm|
|00002660| 50 74 72 21 3d 6f 6c 64 | 50 6d 50 74 72 0d 09 09 |Ptr!=old|PmPtr...|
|00002670| 7c 7c 20 70 6d 50 74 72 | 2d 3e 62 61 73 65 41 64 ||| pmPtr|->baseAd|
|00002680| 64 72 21 3d 6f 6c 64 4d | 61 70 2e 62 61 73 65 41 |dr!=oldM|ap.baseA|
|00002690| 64 64 72 20 0d 09 09 7c | 7c 20 70 6d 50 74 72 2d |ddr ...||| pmPtr-|
|000026a0| 3e 72 6f 77 42 79 74 65 | 73 21 3d 6f 6c 64 4d 61 |>rowByte|s!=oldMa|
|000026b0| 70 2e 72 6f 77 42 79 74 | 65 73 20 0d 09 09 7c 7c |p.rowByt|es ...|||
|000026c0| 20 2a 28 6c 6f 6e 67 20 | 2a 29 26 70 6d 50 74 72 | *(long |*)&pmPtr|
|000026d0| 2d 3e 62 6f 75 6e 64 73 | 2e 74 6f 70 21 3d 2a 28 |->bounds|.top!=*(|
|000026e0| 6c 6f 6e 67 20 2a 29 26 | 6f 6c 64 4d 61 70 2e 62 |long *)&|oldMap.b|
|000026f0| 6f 75 6e 64 73 2e 74 6f | 70 0d 09 09 7c 7c 20 2a |ounds.to|p...|| *|
|00002700| 28 6c 6f 6e 67 20 2a 29 | 26 70 6d 50 74 72 2d 3e |(long *)|&pmPtr->|
|00002710| 62 6f 75 6e 64 73 2e 62 | 6f 74 74 6f 6d 21 3d 2a |bounds.b|ottom!=*|
|00002720| 28 6c 6f 6e 67 20 2a 29 | 26 6f 6c 64 4d 61 70 2e |(long *)|&oldMap.|
|00002730| 62 6f 75 6e 64 73 2e 62 | 6f 74 74 6f 6d 29 7b 0d |bounds.b|ottom){.|
|00002740| 09 09 2f 2f 20 43 61 63 | 68 65 20 69 73 20 73 74 |..// Cac|he is st|
|00002750| 61 6c 65 2e 20 47 65 74 | 20 66 72 65 73 68 20 76 |ale. Get| fresh v|
|00002760| 61 6c 75 65 73 2e 0d 09 | 09 73 68 6f 72 74 20 70 |alues...|.short p|
|00002770| 69 78 65 6c 53 69 7a 65 | 3b 0d 09 09 2f 2f 20 52 |ixelSize|;...// R|
|00002780| 65 63 74 54 6f 41 64 64 | 72 65 73 73 20 63 6f 6d |ectToAdd|ress com|
|00002790| 70 75 74 65 73 20 70 69 | 78 65 6c 50 74 72 20 61 |putes pi|xelPtr a|
|000027a0| 6e 64 20 63 6c 69 70 73 | 20 72 20 74 6f 20 74 68 |nd clips| r to th|
|000027b0| 65 20 62 69 74 2f 70 69 | 78 6d 61 70 20 62 6f 75 |e bit/pi|xmap bou|
|000027c0| 6e 64 73 2e 0d 09 09 70 | 69 78 65 6c 50 74 72 3d |nds....p|ixelPtr=|
|000027d0| 52 65 63 74 54 6f 41 64 | 64 72 65 73 73 28 70 6d |RectToAd|dress(pm|
|000027e0| 50 74 72 2c 26 72 2c 26 | 72 6f 77 42 79 74 65 73 |Ptr,&r,&|rowBytes|
|000027f0| 2c 26 70 69 78 65 6c 53 | 69 7a 65 2c 26 62 69 74 |,&pixelS|ize,&bit|
|00002800| 73 4f 66 66 73 65 74 29 | 3b 0d 09 09 69 66 28 70 |sOffset)|;...if(p|
|00002810| 69 78 65 6c 50 74 72 3d | 3d 4e 55 4c 4c 29 7b 0d |ixelPtr=|=NULL){.|
|00002820| 09 09 09 6f 6c 64 50 6d | 50 74 72 3d 28 50 69 78 |...oldPm|Ptr=(Pix|
|00002830| 4d 61 70 50 74 72 29 2d | 31 3b 09 2f 2f 20 69 6e |MapPtr)-|1;.// in|
|00002840| 76 61 6c 69 64 61 74 65 | 20 63 61 63 68 65 0d 09 |validate| cache..|
|00002850| 09 09 72 65 74 75 72 6e | 20 30 3b 0d 09 09 7d 0d |..return| 0;...}.|
|00002860| 09 09 6f 6c 64 50 6d 50 | 74 72 3d 70 6d 50 74 72 |..oldPmP|tr=pmPtr|
|00002870| 3b 0d 09 09 6f 6c 64 4d | 61 70 3d 2a 28 42 69 74 |;...oldM|ap=*(Bit|
|00002880| 4d 61 70 20 2a 29 70 6d | 50 74 72 3b 0d 09 09 6c |Map *)pm|Ptr;...l|
|00002890| 6f 67 50 69 78 65 6c 53 | 69 7a 65 3d 4c 6f 67 32 |ogPixelS|ize=Log2|
|000028a0| 4c 28 70 69 78 65 6c 53 | 69 7a 65 29 3b 0d 09 09 |L(pixelS|ize);...|
|000028b0| 76 61 6c 75 65 2b 3d 72 | 2e 6c 65 66 74 2d 78 3b |value+=r|.left-x;|
|000028c0| 09 2f 2f 20 55 70 64 61 | 74 65 20 61 66 74 65 72 |.// Upda|te after|
|000028d0| 20 63 6c 69 70 70 69 6e | 67 2e 0d 09 09 78 3d 72 | clippin|g....x=r|
|000028e0| 2e 6c 65 66 74 3b 0d 09 | 09 6e 3d 72 2e 72 69 67 |.left;..|.n=r.rig|
|000028f0| 68 74 2d 72 2e 6c 65 66 | 74 3b 0d 09 7d 65 6c 73 |ht-r.lef|t;..}els|
|00002900| 65 7b 0d 09 09 2f 2f 20 | 43 61 63 68 65 20 69 73 |e{...// |Cache is|
|00002910| 20 66 72 65 73 68 2e 20 | 4d 65 72 65 6c 79 20 63 | fresh. |Merely c|
|00002920| 6f 72 72 65 63 74 20 66 | 6f 72 20 63 68 61 6e 67 |orrect f|or chang|
|00002930| 65 73 20 69 6e 20 78 20 | 61 6e 64 20 79 2e 0d 09 |es in x |and y...|
|00002940| 09 69 66 28 70 69 78 65 | 6c 50 74 72 3d 3d 4e 55 |.if(pixe|lPtr==NU|
|00002950| 4c 4c 29 72 65 74 75 72 | 6e 20 31 3b 0d 09 09 76 |LL)retur|n 1;...v|
|00002960| 61 6c 75 65 2b 3d 72 2e | 6c 65 66 74 2d 78 3b 09 |alue+=r.|left-x;.|
|00002970| 2f 2f 20 55 70 64 61 74 | 65 20 61 66 74 65 72 20 |// Updat|e after |
|00002980| 63 6c 69 70 70 69 6e 67 | 2e 0d 09 09 78 3d 72 2e |clipping|....x=r.|
|00002990| 6c 65 66 74 3b 0d 09 09 | 6e 3d 72 2e 72 69 67 68 |left;...|n=r.righ|
|000029a0| 74 2d 72 2e 6c 65 66 74 | 3b 0d 09 09 69 66 28 78 |t-r.left|;...if(x|
|000029b0| 21 3d 6f 6c 64 58 29 7b | 0d 09 09 09 69 66 28 6c |!=oldX){|....if(l|
|000029c0| 6f 67 50 69 78 65 6c 53 | 69 7a 65 3c 33 29 7b 0d |ogPixelS|ize<3){.|
|000029d0| 09 09 09 09 72 65 67 69 | 73 74 65 72 20 6c 6f 6e |....regi|ster lon|
|000029e0| 67 20 62 69 74 73 3b 0d | 09 09 09 09 62 69 74 73 |g bits;.|....bits|
|000029f0| 3d 62 69 74 73 4f 66 66 | 73 65 74 2b 28 6c 6f 6e |=bitsOff|set+(lon|
|00002a00| 67 29 28 78 2d 6f 6c 64 | 58 29 3c 3c 6c 6f 67 50 |g)(x-old|X)<<logP|
|00002a10| 69 78 65 6c 53 69 7a 65 | 3b 0d 09 09 09 09 70 69 |ixelSize|;.....pi|
|00002a20| 78 65 6c 50 74 72 2b 3d | 62 69 74 73 3e 3e 33 3b |xelPtr+=|bits>>3;|
|00002a30| 0d 09 09 09 09 62 69 74 | 73 4f 66 66 73 65 74 3d |.....bit|sOffset=|
|00002a40| 62 69 74 73 26 37 3b 0d | 09 09 09 7d 65 6c 73 65 |bits&7;.|...}else|
|00002a50| 20 70 69 78 65 6c 50 74 | 72 2b 3d 28 78 2d 6f 6c | pixelPt|r+=(x-ol|
|00002a60| 64 58 29 3c 3c 28 6c 6f | 67 50 69 78 65 6c 53 69 |dX)<<(lo|gPixelSi|
|00002a70| 7a 65 2d 33 29 3b 0d 09 | 09 7d 0d 09 09 69 66 28 |ze-3);..|.}...if(|
|00002a80| 79 21 3d 6f 6c 64 59 29 | 70 69 78 65 6c 50 74 72 |y!=oldY)|pixelPtr|
|00002a90| 2b 3d 28 6c 6f 6e 67 29 | 28 79 2d 6f 6c 64 59 29 |+=(long)|(y-oldY)|
|00002aa0| 2a 72 6f 77 42 79 74 65 | 73 3b 0d 09 7d 0d 09 69 |*rowByte|s;..}..i|
|00002ab0| 66 28 51 44 33 32 45 78 | 69 73 74 73 28 29 29 53 |f(QD32Ex|ists())S|
|00002ac0| 77 61 70 4d 4d 55 4d 6f | 64 65 28 26 6d 6f 64 65 |wapMMUMo|de(&mode|
|00002ad0| 33 32 29 3b 0d 09 73 77 | 69 74 63 68 28 6c 6f 67 |32);..sw|itch(log|
|00002ae0| 50 69 78 65 6c 53 69 7a | 65 29 7b 0d 09 63 61 73 |PixelSiz|e){..cas|
|00002af0| 65 20 30 3a 7b 0d 09 09 | 72 65 67 69 73 74 65 72 |e 0:{...|register|
|00002b00| 20 75 6e 73 69 67 6e 65 | 64 20 63 68 61 72 20 76 | unsigne|d char v|
|00002b10| 61 6c 2c 6d 61 73 6b 2c | 2a 70 74 72 3d 70 69 78 |al,mask,|*ptr=pix|
|00002b20| 65 6c 50 74 72 3b 0d 09 | 09 73 68 69 66 74 3d 73 |elPtr;..|.shift=s|
|00002b30| 69 7a 65 6f 66 28 2a 70 | 74 72 29 2a 38 3b 0d 09 |izeof(*p|tr)*8;..|
|00002b40| 09 73 68 69 66 74 2d 3d | 62 69 74 73 4f 66 66 73 |.shift-=|bitsOffs|
|00002b50| 65 74 3b 09 2f 2f 20 66 | 72 6f 6d 20 72 69 67 68 |et;.// f|rom righ|
|00002b60| 74 2c 20 69 6e 73 74 65 | 61 64 20 6f 66 20 66 72 |t, inste|ad of fr|
|00002b70| 6f 6d 20 6c 65 66 74 0d | 09 09 64 6f 7b 0d 09 09 |om left.|..do{...|
|00002b80| 09 76 61 6c 3d 6d 61 73 | 6b 3d 30 3b 0d 09 09 09 |.val=mas|k=0;....|
|00002b90| 64 6f 7b 0d 09 09 09 09 | 73 68 69 66 74 2d 3d 31 |do{.....|shift-=1|
|00002ba0| 3b 0d 09 09 09 09 76 61 | 6c 3c 3c 3d 31 3b 0d 09 |;.....va|l<<=1;..|
|00002bb0| 09 09 09 6d 61 73 6b 3c | 3c 3d 31 3b 0d 09 09 09 |...mask<|<=1;....|
|00002bc0| 09 69 66 28 6e 3e 30 29 | 7b 0d 09 09 09 09 09 76 |.if(n>0)|{......v|
|00002bd0| 61 6c 7c 3d 28 2a 76 61 | 6c 75 65 2b 2b 29 26 31 |al|=(*va|lue++)&1|
|00002be0| 3b 0d 09 09 09 09 09 6d | 61 73 6b 7c 3d 31 3b 0d |;......m|ask|=1;.|
|00002bf0| 09 09 09 09 09 6e 2d 2d | 3b 0d 09 09 09 09 7d 65 |.....n--|;.....}e|
|00002c00| 6c 73 65 7b 0d 09 09 09 | 09 09 76 61 6c 3c 3c 3d |lse{....|..val<<=|
|00002c10| 73 68 69 66 74 3b 0d 09 | 09 09 09 09 6d 61 73 6b |shift;..|....mask|
|00002c20| 3c 3c 3d 73 68 69 66 74 | 3b 0d 09 09 09 09 09 62 |<<=shift|;......b|
|00002c30| 72 65 61 6b 3b 0d 09 09 | 09 09 7d 0d 09 09 09 7d |reak;...|..}....}|
|00002c40| 77 68 69 6c 65 28 73 68 | 69 66 74 3e 30 29 3b 0d |while(sh|ift>0);.|
|00002c50| 09 09 09 6d 61 73 6b 3d | 7e 6d 61 73 6b 3b 0d 09 |...mask=|~mask;..|
|00002c60| 09 09 2a 70 74 72 3d 20 | 2a 70 74 72 20 26 20 6d |..*ptr= |*ptr & m|
|00002c70| 61 73 6b 20 7c 20 28 75 | 6e 73 69 67 6e 65 64 20 |ask | (u|nsigned |
|00002c80| 63 68 61 72 29 76 61 6c | 3b 0d 09 09 09 70 74 72 |char)val|;....ptr|
|00002c90| 2b 2b 3b 0d 09 09 09 73 | 68 69 66 74 3d 73 69 7a |++;....s|hift=siz|
|00002ca0| 65 6f 66 28 2a 70 74 72 | 29 2a 38 3b 0d 09 09 7d |eof(*ptr|)*8;...}|
|00002cb0| 77 68 69 6c 65 28 6e 3e | 30 29 3b 0d 09 09 62 72 |while(n>|0);...br|
|00002cc0| 65 61 6b 3b 0d 09 7d 0d | 09 63 61 73 65 20 31 3a |eak;..}.|.case 1:|
|00002cd0| 7b 0d 09 09 72 65 67 69 | 73 74 65 72 20 75 6e 73 |{...regi|ster uns|
|00002ce0| 69 67 6e 65 64 20 63 68 | 61 72 20 76 61 6c 2c 6d |igned ch|ar val,m|
|00002cf0| 61 73 6b 2c 2a 70 74 72 | 3d 70 69 78 65 6c 50 74 |ask,*ptr|=pixelPt|
|00002d00| 72 3b 0d 09 09 73 68 69 | 66 74 3d 73 69 7a 65 6f |r;...shi|ft=sizeo|
|00002d10| 66 28 2a 70 74 72 29 2a | 38 3b 0d 09 09 73 68 69 |f(*ptr)*|8;...shi|
|00002d20| 66 74 2d 3d 62 69 74 73 | 4f 66 66 73 65 74 3b 09 |ft-=bits|Offset;.|
|00002d30| 2f 2f 20 66 72 6f 6d 20 | 72 69 67 68 74 2c 20 69 |// from |right, i|
|00002d40| 6e 73 74 65 61 64 20 6f | 66 20 66 72 6f 6d 20 6c |nstead o|f from l|
|00002d50| 65 66 74 0d 09 09 64 6f | 7b 0d 09 09 09 76 61 6c |eft...do|{....val|
|00002d60| 3d 6d 61 73 6b 3d 30 3b | 0d 09 09 09 64 6f 7b 0d |=mask=0;|....do{.|
|00002d70| 09 09 09 09 73 68 69 66 | 74 2d 3d 32 3b 0d 09 09 |....shif|t-=2;...|
|00002d80| 09 09 76 61 6c 3c 3c 3d | 32 3b 0d 09 09 09 09 6d |..val<<=|2;.....m|
|00002d90| 61 73 6b 3c 3c 3d 32 3b | 0d 09 09 09 09 69 66 28 |ask<<=2;|.....if(|
|00002da0| 6e 3e 30 29 7b 0d 09 09 | 09 09 09 76 61 6c 7c 3d |n>0){...|...val|=|
|00002db0| 28 2a 76 61 6c 75 65 2b | 2b 29 26 33 3b 0d 09 09 |(*value+|+)&3;...|
|00002dc0| 09 09 09 6d 61 73 6b 7c | 3d 33 3b 0d 09 09 09 09 |...mask||=3;.....|
|00002dd0| 09 6e 2d 2d 3b 0d 09 09 | 09 09 7d 65 6c 73 65 7b |.n--;...|..}else{|
|00002de0| 0d 09 09 09 09 09 76 61 | 6c 3c 3c 3d 73 68 69 66 |......va|l<<=shif|
|00002df0| 74 3b 0d 09 09 09 09 09 | 6d 61 73 6b 3c 3c 3d 73 |t;......|mask<<=s|
|00002e00| 68 69 66 74 3b 0d 09 09 | 09 09 09 62 72 65 61 6b |hift;...|...break|
|00002e10| 3b 0d 09 09 09 09 7d 0d | 09 09 09 7d 77 68 69 6c |;.....}.|...}whil|
|00002e20| 65 28 73 68 69 66 74 3e | 30 29 3b 0d 09 09 09 6d |e(shift>|0);....m|
|00002e30| 61 73 6b 3d 7e 6d 61 73 | 6b 3b 0d 09 09 09 2a 70 |ask=~mas|k;....*p|
|00002e40| 74 72 3d 20 2a 70 74 72 | 20 26 20 6d 61 73 6b 20 |tr= *ptr| & mask |
|00002e50| 7c 20 28 75 6e 73 69 67 | 6e 65 64 20 63 68 61 72 || (unsig|ned char|
|00002e60| 29 76 61 6c 3b 0d 09 09 | 09 70 74 72 2b 2b 3b 0d |)val;...|.ptr++;.|
|00002e70| 09 09 09 73 68 69 66 74 | 3d 73 69 7a 65 6f 66 28 |...shift|=sizeof(|
|00002e80| 2a 70 74 72 29 2a 38 3b | 0d 09 09 7d 77 68 69 6c |*ptr)*8;|...}whil|
|00002e90| 65 28 6e 3e 30 29 3b 0d | 09 09 62 72 65 61 6b 3b |e(n>0);.|..break;|
|00002ea0| 0d 09 7d 0d 09 63 61 73 | 65 20 32 3a 7b 0d 09 09 |..}..cas|e 2:{...|
|00002eb0| 72 65 67 69 73 74 65 72 | 20 75 6e 73 69 67 6e 65 |register| unsigne|
|00002ec0| 64 20 63 68 61 72 20 76 | 61 6c 2c 6d 61 73 6b 2c |d char v|al,mask,|
|00002ed0| 2a 70 74 72 3d 70 69 78 | 65 6c 50 74 72 3b 0d 09 |*ptr=pix|elPtr;..|
|00002ee0| 09 73 68 69 66 74 3d 73 | 69 7a 65 6f 66 28 2a 70 |.shift=s|izeof(*p|
|00002ef0| 74 72 29 2a 38 3b 0d 09 | 09 73 68 69 66 74 2d 3d |tr)*8;..|.shift-=|
|00002f00| 62 69 74 73 4f 66 66 73 | 65 74 3b 09 2f 2f 20 66 |bitsOffs|et;.// f|
|00002f10| 72 6f 6d 20 72 69 67 68 | 74 2c 20 69 6e 73 74 65 |rom righ|t, inste|
|00002f20| 61 64 20 6f 66 20 66 72 | 6f 6d 20 6c 65 66 74 0d |ad of fr|om left.|
|00002f30| 09 09 64 6f 7b 0d 09 09 | 09 76 61 6c 3d 6d 61 73 |..do{...|.val=mas|
|00002f40| 6b 3d 30 3b 0d 09 09 09 | 64 6f 7b 0d 09 09 09 09 |k=0;....|do{.....|
|00002f50| 73 68 69 66 74 2d 3d 34 | 3b 0d 09 09 09 09 76 61 |shift-=4|;.....va|
|00002f60| 6c 3c 3c 3d 34 3b 0d 09 | 09 09 09 6d 61 73 6b 3c |l<<=4;..|...mask<|
|00002f70| 3c 3d 34 3b 0d 09 09 09 | 09 69 66 28 6e 3e 30 29 |<=4;....|.if(n>0)|
|00002f80| 7b 0d 09 09 09 09 09 76 | 61 6c 7c 3d 28 2a 76 61 |{......v|al|=(*va|
|00002f90| 6c 75 65 2b 2b 29 26 31 | 35 3b 0d 09 09 09 09 09 |lue++)&1|5;......|
|00002fa0| 6d 61 73 6b 7c 3d 31 35 | 3b 0d 09 09 09 09 09 6e |mask|=15|;......n|
|00002fb0| 2d 2d 3b 0d 09 09 09 09 | 7d 65 6c 73 65 7b 0d 09 |--;.....|}else{..|
|00002fc0| 09 09 09 09 76 61 6c 3c | 3c 3d 73 68 69 66 74 3b |....val<|<=shift;|
|00002fd0| 0d 09 09 09 09 09 6d 61 | 73 6b 3c 3c 3d 73 68 69 |......ma|sk<<=shi|
|00002fe0| 66 74 3b 0d 09 09 09 09 | 09 62 72 65 61 6b 3b 0d |ft;.....|.break;.|
|00002ff0| 09 09 09 09 7d 0d 09 09 | 09 7d 77 68 69 6c 65 28 |....}...|.}while(|
|00003000| 73 68 69 66 74 3e 30 29 | 3b 0d 09 09 09 6d 61 73 |shift>0)|;....mas|
|00003010| 6b 3d 7e 6d 61 73 6b 3b | 0d 09 09 09 2a 70 74 72 |k=~mask;|....*ptr|
|00003020| 3d 20 2a 70 74 72 20 26 | 20 6d 61 73 6b 20 7c 20 |= *ptr &| mask | |
|00003030| 28 75 6e 73 69 67 6e 65 | 64 20 63 68 61 72 29 76 |(unsigne|d char)v|
|00003040| 61 6c 3b 0d 09 09 09 70 | 74 72 2b 2b 3b 0d 09 09 |al;....p|tr++;...|
|00003050| 09 73 68 69 66 74 3d 73 | 69 7a 65 6f 66 28 2a 70 |.shift=s|izeof(*p|
|00003060| 74 72 29 2a 38 3b 0d 09 | 09 7d 77 68 69 6c 65 28 |tr)*8;..|.}while(|
|00003070| 6e 3e 30 29 3b 0d 09 09 | 62 72 65 61 6b 3b 0d 09 |n>0);...|break;..|
|00003080| 7d 0d 09 63 61 73 65 20 | 33 3a 7b 0d 09 09 72 65 |}..case |3:{...re|
|00003090| 67 69 73 74 65 72 20 75 | 6e 73 69 67 6e 65 64 20 |gister u|nsigned |
|000030a0| 63 68 61 72 20 2a 70 42 | 3d 70 69 78 65 6c 50 74 |char *pB|=pixelPt|
|000030b0| 72 3b 0d 09 09 66 6f 72 | 28 3b 6e 3e 30 3b 6e 2d |r;...for|(;n>0;n-|
|000030c0| 2d 29 20 2a 70 42 2b 2b | 20 3d 20 2a 76 61 6c 75 |-) *pB++| = *valu|
|000030d0| 65 2b 2b 3b 0d 09 09 62 | 72 65 61 6b 3b 0d 09 7d |e++;...b|reak;..}|
|000030e0| 0d 09 63 61 73 65 20 34 | 3a 7b 0d 09 09 72 65 67 |..case 4|:{...reg|
|000030f0| 69 73 74 65 72 20 75 6e | 73 69 67 6e 65 64 20 73 |ister un|signed s|
|00003100| 68 6f 72 74 20 2a 70 57 | 3d 28 75 6e 73 69 67 6e |hort *pW|=(unsign|
|00003110| 65 64 20 73 68 6f 72 74 | 20 2a 29 70 69 78 65 6c |ed short| *)pixel|
|00003120| 50 74 72 3b 0d 09 09 66 | 6f 72 28 3b 6e 3e 30 3b |Ptr;...f|or(;n>0;|
|00003130| 6e 2d 2d 29 20 2a 70 57 | 2b 2b 20 3d 20 2a 76 61 |n--) *pW|++ = *va|
|00003140| 6c 75 65 2b 2b 3b 0d 09 | 09 62 72 65 61 6b 3b 0d |lue++;..|.break;.|
|00003150| 09 7d 0d 09 63 61 73 65 | 20 35 3a 7b 0d 09 09 72 |.}..case| 5:{...r|
|00003160| 65 67 69 73 74 65 72 20 | 75 6e 73 69 67 6e 65 64 |egister |unsigned|
|00003170| 20 6c 6f 6e 67 20 2a 70 | 4c 3d 28 75 6e 73 69 67 | long *p|L=(unsig|
|00003180| 6e 65 64 20 6c 6f 6e 67 | 20 2a 29 70 69 78 65 6c |ned long| *)pixel|
|00003190| 50 74 72 3b 0d 09 09 66 | 6f 72 28 3b 6e 3e 30 3b |Ptr;...f|or(;n>0;|
|000031a0| 6e 2d 2d 29 20 2a 70 4c | 2b 2b 20 3d 20 2a 76 61 |n--) *pL|++ = *va|
|000031b0| 6c 75 65 2b 2b 3b 0d 09 | 09 62 72 65 61 6b 3b 0d |lue++;..|.break;.|
|000031c0| 09 7d 0d 09 7d 0d 09 69 | 66 28 51 44 33 32 45 78 |.}..}..i|f(QD32Ex|
|000031d0| 69 73 74 73 28 29 29 53 | 77 61 70 4d 4d 55 4d 6f |ists())S|wapMMUMo|
|000031e0| 64 65 28 26 6d 6f 64 65 | 33 32 29 3b 0d 09 6f 6c |de(&mode|32);..ol|
|000031f0| 64 58 3d 78 3b 0d 09 6f | 6c 64 59 3d 79 3b 0d 09 |dX=x;..o|ldY=y;..|
|00003200| 72 65 74 75 72 6e 20 65 | 72 72 6f 72 3b 0d 7d 0d |return e|rror;.}.|
|00003210| 0d 69 6e 74 20 47 65 74 | 50 69 78 6d 61 70 50 69 |.int Get|PixmapPi|
|00003220| 78 65 6c 73 51 75 69 63 | 6b 6c 79 28 50 69 78 4d |xelsQuic|kly(PixM|
|00003230| 61 70 50 74 72 20 70 6d | 50 74 72 2c 69 6e 74 20 |apPtr pm|Ptr,int |
|00003240| 78 2c 69 6e 74 20 79 2c | 75 6e 73 69 67 6e 65 64 |x,int y,|unsigned|
|00003250| 20 6c 6f 6e 67 20 76 61 | 6c 75 65 5b 5d 0d 09 2c | long va|lue[]..,|
|00003260| 72 65 67 69 73 74 65 72 | 20 73 68 6f 72 74 20 6e |register| short n|
|00003270| 29 0d 2f 2f 20 50 65 65 | 6b 73 20 61 20 72 6f 77 |).// Pee|ks a row|
|00003280| 73 20 6f 66 20 70 69 78 | 65 6c 73 20 6f 66 20 61 |s of pix|els of a|
|00003290| 6e 79 20 73 69 7a 65 2e | 20 41 63 63 65 70 74 73 |ny size.| Accepts|
|000032a0| 20 65 69 74 68 65 72 20 | 70 69 78 6d 61 70 20 6f | either |pixmap o|
|000032b0| 72 20 62 69 74 6d 61 70 | 20 70 6f 69 6e 74 65 72 |r bitmap| pointer|
|000032c0| 2e 0d 2f 2f 20 28 78 2c | 79 29 20 69 73 20 69 6e |..// (x,|y) is in|
|000032d0| 20 74 68 65 20 63 6f 6f | 72 64 69 6e 61 74 65 20 | the coo|rdinate |
|000032e0| 73 79 73 74 65 6d 20 6f | 66 20 74 68 65 20 62 69 |system o|f the bi|
|000032f0| 74 2f 70 69 78 6d 61 70 | 2e 0d 2f 2f 20 53 70 65 |t/pixmap|..// Spe|
|00003300| 65 64 20 69 73 20 65 6e | 68 61 6e 63 65 64 20 62 |ed is en|hanced b|
|00003310| 79 20 72 65 75 73 69 6e | 67 20 74 68 65 20 63 61 |y reusin|g the ca|
|00003320| 63 68 65 64 20 69 6e 66 | 6f 72 6d 61 74 69 6f 6e |ched inf|ormation|
|00003330| 20 66 72 6f 6d 20 6c 61 | 73 74 20 74 69 6d 65 20 | from la|st time |
|00003340| 69 66 20 69 74 27 73 20 | 74 68 65 0d 2f 2f 20 73 |if it's |the.// s|
|00003350| 61 6d 65 20 50 69 78 2f | 42 69 74 6d 61 70 20 61 |ame Pix/|Bitmap a|
|00003360| 73 20 6c 61 73 74 20 74 | 69 6d 65 2c 20 69 2e 65 |s last t|ime, i.e|
|00003370| 2e 20 73 61 6d 65 20 61 | 64 64 72 65 73 73 2c 20 |. same a|ddress, |
|00003380| 62 61 73 65 41 64 64 72 | 2c 72 6f 77 42 79 74 65 |baseAddr|,rowByte|
|00003390| 73 2c 20 61 6e 64 20 62 | 6f 75 6e 64 73 2e 0d 2f |s, and b|ounds../|
|000033a0| 2f 20 59 6f 75 20 63 61 | 6e 20 66 6f 72 63 65 20 |/ You ca|n force |
|000033b0| 69 74 20 74 6f 20 66 6c | 75 73 68 20 69 74 73 20 |it to fl|ush its |
|000033c0| 63 61 63 68 65 20 62 79 | 20 70 61 73 73 69 6e 67 |cache by| passing|
|000033d0| 20 61 20 4e 55 4c 4c 20 | 62 69 74 2f 70 69 78 6d | a NULL |bit/pixm|
|000033e0| 61 70 20 70 6f 69 6e 74 | 65 72 2e 0d 7b 0d 09 73 |ap point|er..{..s|
|000033f0| 74 61 74 69 63 20 50 69 | 78 4d 61 70 50 74 72 20 |tatic Pi|xMapPtr |
|00003400| 6f 6c 64 50 6d 50 74 72 | 3d 28 50 69 78 4d 61 70 |oldPmPtr|=(PixMap|
|00003410| 50 74 72 29 2d 31 3b 0d | 09 73 74 61 74 69 63 20 |Ptr)-1;.|.static |
|00003420| 69 6e 74 20 6f 6c 64 58 | 2c 6f 6c 64 59 3b 0d 09 |int oldX|,oldY;..|
|00003430| 73 74 61 74 69 63 20 73 | 68 6f 72 74 20 72 6f 77 |static s|hort row|
|00003440| 42 79 74 65 73 2c 6c 6f | 67 50 69 78 65 6c 53 69 |Bytes,lo|gPixelSi|
|00003450| 7a 65 2c 62 69 74 73 4f | 66 66 73 65 74 3b 0d 09 |ze,bitsO|ffset;..|
|00003460| 73 74 61 74 69 63 20 75 | 6e 73 69 67 6e 65 64 20 |static u|nsigned |
|00003470| 63 68 61 72 20 2a 70 69 | 78 65 6c 50 74 72 3b 0d |char *pi|xelPtr;.|
|00003480| 09 73 74 61 74 69 63 20 | 42 69 74 4d 61 70 20 6f |.static |BitMap o|
|00003490| 6c 64 4d 61 70 3b 0d 09 | 73 74 61 74 69 63 20 50 |ldMap;..|static P|
|000034a0| 74 72 20 6d 61 69 6e 42 | 61 73 65 41 64 64 72 3d |tr mainB|aseAddr=|
|000034b0| 4e 55 4c 4c 3b 0d 09 69 | 6e 74 20 73 68 69 66 74 |NULL;..i|nt shift|
|000034c0| 2c 65 72 72 6f 72 3d 30 | 3b 0d 09 75 6e 73 69 67 |,error=0|;..unsig|
|000034d0| 6e 65 64 20 63 68 61 72 | 20 6d 61 73 6b 3b 0d 09 |ned char| mask;..|
|000034e0| 63 68 61 72 20 6d 6f 64 | 65 33 32 3d 74 72 75 65 |char mod|e32=true|
|000034f0| 33 32 62 3b 0d 09 52 65 | 63 74 20 72 3b 0d 09 0d |32b;..Re|ct r;...|
|00003500| 09 2f 2f 20 43 6c 69 70 | 20 74 6f 20 70 69 78 2f |.// Clip| to pix/|
|00003510| 62 69 74 6d 61 70 20 62 | 6f 75 6e 64 73 2e 0d 09 |bitmap b|ounds...|
|00003520| 53 65 74 52 65 63 74 28 | 26 72 2c 78 2c 79 2c 78 |SetRect(|&r,x,y,x|
|00003530| 2b 6e 2c 79 2b 31 29 3b | 0d 09 69 66 28 6d 61 69 |+n,y+1);|..if(mai|
|00003540| 6e 42 61 73 65 41 64 64 | 72 3d 3d 4e 55 4c 4c 29 |nBaseAdd|r==NULL)|
|00003550| 7b 0d 09 09 69 66 28 51 | 44 38 45 78 69 73 74 73 |{...if(Q|D8Exists|
|00003560| 28 29 29 6d 61 69 6e 42 | 61 73 65 41 64 64 72 3d |())mainB|aseAddr=|
|00003570| 28 2a 28 2a 47 65 74 4d | 61 69 6e 44 65 76 69 63 |(*(*GetM|ainDevic|
|00003580| 65 28 29 29 2d 3e 67 64 | 50 4d 61 70 29 2d 3e 62 |e())->gd|PMap)->b|
|00003590| 61 73 65 41 64 64 72 3b | 0d 09 09 65 6c 73 65 20 |aseAddr;|...else |
|000035a0| 6d 61 69 6e 42 61 73 65 | 41 64 64 72 3d 28 76 6f |mainBase|Addr=(vo|
|000035b0| 69 64 20 2a 29 2d 31 3b | 0d 09 7d 0d 09 2f 2f 20 |id *)-1;|..}..// |
|000035c0| 43 6c 69 70 20 75 6e 6c | 65 73 73 20 74 68 65 20 |Clip unl|ess the |
|000035d0| 70 69 78 6d 61 70 20 70 | 72 65 74 65 6e 64 73 20 |pixmap p|retends |
|000035e0| 74 6f 20 62 65 20 74 68 | 65 20 6d 61 69 6e 20 64 |to be th|e main d|
|000035f0| 65 76 69 63 65 2e 0d 09 | 69 66 28 70 6d 50 74 72 |evice...|if(pmPtr|
|00003600| 21 3d 4e 55 4c 4c 20 26 | 26 20 70 6d 50 74 72 2d |!=NULL &|& pmPtr-|
|00003610| 3e 62 61 73 65 41 64 64 | 72 21 3d 6d 61 69 6e 42 |>baseAdd|r!=mainB|
|00003620| 61 73 65 41 64 64 72 20 | 0d 09 09 26 26 20 21 53 |aseAddr |...&& !S|
|00003630| 65 63 74 52 65 63 74 28 | 26 70 6d 50 74 72 2d 3e |ectRect(|&pmPtr->|
|00003640| 62 6f 75 6e 64 73 2c 26 | 72 2c 26 72 29 29 72 65 |bounds,&|r,&r))re|
|00003650| 74 75 72 6e 20 31 3b 09 | 2f 2f 20 67 6f 20 68 6f |turn 1;.|// go ho|
|00003660| 6d 65 20 69 66 20 77 65 | 27 72 65 20 64 6f 6e 65 |me if we|'re done|
|00003670| 0d 0d 09 69 66 28 21 55 | 53 45 5f 43 41 43 48 45 |...if(!U|SE_CACHE|
|00003680| 20 7c 7c 20 70 6d 50 74 | 72 21 3d 6f 6c 64 50 6d | || pmPt|r!=oldPm|
|00003690| 50 74 72 0d 09 09 7c 7c | 20 70 6d 50 74 72 2d 3e |Ptr...||| pmPtr->|
|000036a0| 62 61 73 65 41 64 64 72 | 21 3d 6f 6c 64 4d 61 70 |baseAddr|!=oldMap|
|000036b0| 2e 62 61 73 65 41 64 64 | 72 20 0d 09 09 7c 7c 20 |.baseAdd|r ...|| |
|000036c0| 70 6d 50 74 72 2d 3e 72 | 6f 77 42 79 74 65 73 21 |pmPtr->r|owBytes!|
|000036d0| 3d 6f 6c 64 4d 61 70 2e | 72 6f 77 42 79 74 65 73 |=oldMap.|rowBytes|
|000036e0| 20 0d 09 09 7c 7c 20 2a | 28 6c 6f 6e 67 20 2a 29 | ...|| *|(long *)|
|000036f0| 26 70 6d 50 74 72 2d 3e | 62 6f 75 6e 64 73 2e 74 |&pmPtr->|bounds.t|
|00003700| 6f 70 21 3d 2a 28 6c 6f | 6e 67 20 2a 29 26 6f 6c |op!=*(lo|ng *)&ol|
|00003710| 64 4d 61 70 2e 62 6f 75 | 6e 64 73 2e 74 6f 70 0d |dMap.bou|nds.top.|
|00003720| 09 09 7c 7c 20 2a 28 6c | 6f 6e 67 20 2a 29 26 70 |..|| *(l|ong *)&p|
|00003730| 6d 50 74 72 2d 3e 62 6f | 75 6e 64 73 2e 62 6f 74 |mPtr->bo|unds.bot|
|00003740| 74 6f 6d 21 3d 2a 28 6c | 6f 6e 67 20 2a 29 26 6f |tom!=*(l|ong *)&o|
|00003750| 6c 64 4d 61 70 2e 62 6f | 75 6e 64 73 2e 62 6f 74 |ldMap.bo|unds.bot|
|00003760| 74 6f 6d 29 7b 0d 09 09 | 2f 2f 20 43 61 63 68 65 |tom){...|// Cache|
|00003770| 20 69 73 20 73 74 61 6c | 65 2e 20 47 65 74 20 66 | is stal|e. Get f|
|00003780| 72 65 73 68 20 76 61 6c | 75 65 73 2e 0d 09 09 73 |resh val|ues....s|
|00003790| 68 6f 72 74 20 70 69 78 | 65 6c 53 69 7a 65 3b 0d |hort pix|elSize;.|
|000037a0| 09 09 2f 2f 20 52 65 63 | 74 54 6f 41 64 64 72 65 |..// Rec|tToAddre|
|000037b0| 73 73 20 63 6f 6d 70 75 | 74 65 73 20 70 69 78 65 |ss compu|tes pixe|
|000037c0| 6c 50 74 72 20 61 6e 64 | 20 63 6c 69 70 73 20 72 |lPtr and| clips r|
|000037d0| 20 74 6f 20 74 68 65 20 | 62 69 74 2f 70 69 78 6d | to the |bit/pixm|
|000037e0| 61 70 20 62 6f 75 6e 64 | 73 2e 0d 09 09 70 69 78 |ap bound|s....pix|
|000037f0| 65 6c 50 74 72 3d 52 65 | 63 74 54 6f 41 64 64 72 |elPtr=Re|ctToAddr|
|00003800| 65 73 73 28 70 6d 50 74 | 72 2c 26 72 2c 26 72 6f |ess(pmPt|r,&r,&ro|
|00003810| 77 42 79 74 65 73 2c 26 | 70 69 78 65 6c 53 69 7a |wBytes,&|pixelSiz|
|00003820| 65 2c 26 62 69 74 73 4f | 66 66 73 65 74 29 3b 0d |e,&bitsO|ffset);.|
|00003830| 09 09 69 66 28 70 69 78 | 65 6c 50 74 72 3d 3d 4e |..if(pix|elPtr==N|
|00003840| 55 4c 4c 29 7b 0d 09 09 | 09 6f 6c 64 50 6d 50 74 |ULL){...|.oldPmPt|
|00003850| 72 3d 28 50 69 78 4d 61 | 70 50 74 72 29 2d 31 3b |r=(PixMa|pPtr)-1;|
|00003860| 09 2f 2f 20 69 6e 76 61 | 6c 69 64 61 74 65 20 63 |.// inva|lidate c|
|00003870| 61 63 68 65 0d 09 09 09 | 72 65 74 75 72 6e 20 30 |ache....|return 0|
|00003880| 3b 0d 09 09 7d 0d 09 09 | 6f 6c 64 50 6d 50 74 72 |;...}...|oldPmPtr|
|00003890| 3d 70 6d 50 74 72 3b 0d | 09 09 6f 6c 64 4d 61 70 |=pmPtr;.|..oldMap|
|000038a0| 3d 2a 28 42 69 74 4d 61 | 70 20 2a 29 70 6d 50 74 |=*(BitMa|p *)pmPt|
|000038b0| 72 3b 0d 09 09 6c 6f 67 | 50 69 78 65 6c 53 69 7a |r;...log|PixelSiz|
|000038c0| 65 3d 4c 6f 67 32 4c 28 | 70 69 78 65 6c 53 69 7a |e=Log2L(|pixelSiz|
|000038d0| 65 29 3b 0d 09 09 69 66 | 28 78 21 3d 72 2e 6c 65 |e);...if|(x!=r.le|
|000038e0| 66 74 20 7c 7c 20 78 2b | 6e 21 3d 72 2e 72 69 67 |ft || x+|n!=r.rig|
|000038f0| 68 74 29 7b 09 2f 2f 20 | 55 70 64 61 74 65 20 61 |ht){.// |Update a|
|00003900| 66 74 65 72 20 63 6c 69 | 70 70 69 6e 67 2e 0d 09 |fter cli|pping...|
|00003910| 09 09 65 72 72 6f 72 3d | 31 3b 0d 09 09 09 76 61 |..error=|1;....va|
|00003920| 6c 75 65 2b 3d 72 2e 6c | 65 66 74 2d 78 3b 0d 09 |lue+=r.l|eft-x;..|
|00003930| 09 09 78 3d 72 2e 6c 65 | 66 74 3b 0d 09 09 09 6e |..x=r.le|ft;....n|
|00003940| 3d 72 2e 72 69 67 68 74 | 2d 72 2e 6c 65 66 74 3b |=r.right|-r.left;|
|00003950| 0d 09 09 7d 0d 09 7d 65 | 6c 73 65 7b 0d 09 09 2f |...}..}e|lse{.../|
|00003960| 2f 20 43 61 63 68 65 20 | 69 73 20 66 72 65 73 68 |/ Cache |is fresh|
|00003970| 2e 20 4d 65 72 65 6c 79 | 20 63 6f 72 72 65 63 74 |. Merely| correct|
|00003980| 20 66 6f 72 20 63 68 61 | 6e 67 65 73 20 69 6e 20 | for cha|nges in |
|00003990| 78 20 61 6e 64 20 79 2e | 0d 09 09 69 66 28 70 69 |x and y.|...if(pi|
|000039a0| 78 65 6c 50 74 72 3d 3d | 4e 55 4c 4c 29 72 65 74 |xelPtr==|NULL)ret|
|000039b0| 75 72 6e 20 31 3b 0d 09 | 09 69 66 28 78 21 3d 72 |urn 1;..|.if(x!=r|
|000039c0| 2e 6c 65 66 74 20 7c 7c | 20 78 2b 6e 21 3d 72 2e |.left ||| x+n!=r.|
|000039d0| 72 69 67 68 74 29 7b 09 | 2f 2f 20 55 70 64 61 74 |right){.|// Updat|
|000039e0| 65 20 61 66 74 65 72 20 | 63 6c 69 70 70 69 6e 67 |e after |clipping|
|000039f0| 2e 0d 09 09 09 65 72 72 | 6f 72 3d 31 3b 0d 09 09 |.....err|or=1;...|
|00003a00| 09 76 61 6c 75 65 2b 3d | 72 2e 6c 65 66 74 2d 78 |.value+=|r.left-x|
|00003a10| 3b 0d 09 09 09 78 3d 72 | 2e 6c 65 66 74 3b 0d 09 |;....x=r|.left;..|
|00003a20| 09 09 6e 3d 72 2e 72 69 | 67 68 74 2d 72 2e 6c 65 |..n=r.ri|ght-r.le|
|00003a30| 66 74 3b 0d 09 09 7d 0d | 09 09 69 66 28 78 21 3d |ft;...}.|..if(x!=|
|00003a40| 6f 6c 64 58 29 7b 0d 09 | 09 09 69 66 28 6c 6f 67 |oldX){..|..if(log|
|00003a50| 50 69 78 65 6c 53 69 7a | 65 3c 33 29 7b 0d 09 09 |PixelSiz|e<3){...|
|00003a60| 09 09 72 65 67 69 73 74 | 65 72 20 6c 6f 6e 67 20 |..regist|er long |
|00003a70| 62 69 74 73 3b 0d 09 09 | 09 09 62 69 74 73 3d 62 |bits;...|..bits=b|
|00003a80| 69 74 73 4f 66 66 73 65 | 74 2b 28 6c 6f 6e 67 29 |itsOffse|t+(long)|
|00003a90| 28 78 2d 6f 6c 64 58 29 | 3c 3c 6c 6f 67 50 69 78 |(x-oldX)|<<logPix|
|00003aa0| 65 6c 53 69 7a 65 3b 0d | 09 09 09 09 70 69 78 65 |elSize;.|....pixe|
|00003ab0| 6c 50 74 72 2b 3d 62 69 | 74 73 3e 3e 33 3b 0d 09 |lPtr+=bi|ts>>3;..|
|00003ac0| 09 09 09 62 69 74 73 4f | 66 66 73 65 74 3d 62 69 |...bitsO|ffset=bi|
|00003ad0| 74 73 26 37 3b 0d 09 09 | 09 7d 65 6c 73 65 20 70 |ts&7;...|.}else p|
|00003ae0| 69 78 65 6c 50 74 72 2b | 3d 28 78 2d 6f 6c 64 58 |ixelPtr+|=(x-oldX|
|00003af0| 29 3c 3c 28 6c 6f 67 50 | 69 78 65 6c 53 69 7a 65 |)<<(logP|ixelSize|
|00003b00| 2d 33 29 3b 0d 09 09 7d | 0d 09 09 69 66 28 79 21 |-3);...}|...if(y!|
|00003b10| 3d 6f 6c 64 59 29 70 69 | 78 65 6c 50 74 72 2b 3d |=oldY)pi|xelPtr+=|
|00003b20| 28 6c 6f 6e 67 29 28 79 | 2d 6f 6c 64 59 29 2a 72 |(long)(y|-oldY)*r|
|00003b30| 6f 77 42 79 74 65 73 3b | 0d 09 7d 0d 09 69 66 28 |owBytes;|..}..if(|
|00003b40| 51 44 33 32 45 78 69 73 | 74 73 28 29 29 53 77 61 |QD32Exis|ts())Swa|
|00003b50| 70 4d 4d 55 4d 6f 64 65 | 28 26 6d 6f 64 65 33 32 |pMMUMode|(&mode32|
|00003b60| 29 3b 0d 09 73 77 69 74 | 63 68 28 6c 6f 67 50 69 |);..swit|ch(logPi|
|00003b70| 78 65 6c 53 69 7a 65 29 | 7b 0d 09 63 61 73 65 20 |xelSize)|{..case |
|00003b80| 30 3a 7b 0d 09 09 72 65 | 67 69 73 74 65 72 20 75 |0:{...re|gister u|
|00003b90| 6e 73 69 67 6e 65 64 20 | 63 68 61 72 20 76 61 6c |nsigned |char val|
|00003ba0| 2c 2a 70 74 72 3d 70 69 | 78 65 6c 50 74 72 3b 0d |,*ptr=pi|xelPtr;.|
|00003bb0| 09 09 73 68 69 66 74 3d | 73 69 7a 65 6f 66 28 2a |..shift=|sizeof(*|
|00003bc0| 70 74 72 29 2a 38 3b 0d | 09 09 73 68 69 66 74 2d |ptr)*8;.|..shift-|
|00003bd0| 3d 62 69 74 73 4f 66 66 | 73 65 74 3b 09 2f 2f 20 |=bitsOff|set;.// |
|00003be0| 66 72 6f 6d 20 72 69 67 | 68 74 2c 20 69 6e 73 74 |from rig|ht, inst|
|00003bf0| 65 61 64 20 6f 66 20 66 | 72 6f 6d 20 6c 65 66 74 |ead of f|rom left|
|00003c00| 0d 09 09 64 6f 7b 0d 09 | 09 09 76 61 6c 3d 2a 70 |...do{..|..val=*p|
|00003c10| 74 72 2b 2b 3b 0d 09 09 | 09 64 6f 7b 0d 09 09 09 |tr++;...|.do{....|
|00003c20| 09 73 68 69 66 74 2d 3d | 31 3b 0d 09 09 09 09 69 |.shift-=|1;.....i|
|00003c30| 66 28 6e 3e 30 29 7b 0d | 09 09 09 09 09 2a 76 61 |f(n>0){.|.....*va|
|00003c40| 6c 75 65 2b 2b 3d 28 76 | 61 6c 3e 3e 73 68 69 66 |lue++=(v|al>>shif|
|00003c50| 74 29 26 31 3b 0d 09 09 | 09 09 09 6e 2d 2d 3b 0d |t)&1;...|...n--;.|
|00003c60| 09 09 09 09 7d 65 6c 73 | 65 7b 0d 09 09 09 09 09 |....}els|e{......|
|00003c70| 62 72 65 61 6b 3b 0d 09 | 09 09 09 7d 0d 09 09 09 |break;..|...}....|
|00003c80| 7d 77 68 69 6c 65 28 73 | 68 69 66 74 3e 30 29 3b |}while(s|hift>0);|
|00003c90| 0d 09 09 09 73 68 69 66 | 74 3d 73 69 7a 65 6f 66 |....shif|t=sizeof|
|00003ca0| 28 2a 70 74 72 29 2a 38 | 3b 0d 09 09 7d 77 68 69 |(*ptr)*8|;...}whi|
|00003cb0| 6c 65 28 6e 3e 30 29 3b | 0d 09 09 62 72 65 61 6b |le(n>0);|...break|
|00003cc0| 3b 0d 09 7d 0d 09 63 61 | 73 65 20 31 3a 7b 0d 09 |;..}..ca|se 1:{..|
|00003cd0| 09 72 65 67 69 73 74 65 | 72 20 75 6e 73 69 67 6e |.registe|r unsign|
|00003ce0| 65 64 20 63 68 61 72 20 | 76 61 6c 2c 2a 70 74 72 |ed char |val,*ptr|
|00003cf0| 3d 70 69 78 65 6c 50 74 | 72 3b 0d 09 09 73 68 69 |=pixelPt|r;...shi|
|00003d00| 66 74 3d 73 69 7a 65 6f | 66 28 2a 70 74 72 29 2a |ft=sizeo|f(*ptr)*|
|00003d10| 38 3b 0d 09 09 73 68 69 | 66 74 2d 3d 62 69 74 73 |8;...shi|ft-=bits|
|00003d20| 4f 66 66 73 65 74 3b 09 | 2f 2f 20 66 72 6f 6d 20 |Offset;.|// from |
|00003d30| 72 69 67 68 74 2c 20 69 | 6e 73 74 65 61 64 20 6f |right, i|nstead o|
|00003d40| 66 20 66 72 6f 6d 20 6c | 65 66 74 0d 09 09 64 6f |f from l|eft...do|
|00003d50| 7b 0d 09 09 09 76 61 6c | 3d 2a 70 74 72 2b 2b 3b |{....val|=*ptr++;|
|00003d60| 0d 09 09 09 64 6f 7b 0d | 09 09 09 09 73 68 69 66 |....do{.|....shif|
|00003d70| 74 2d 3d 32 3b 0d 09 09 | 09 09 69 66 28 6e 3e 30 |t-=2;...|..if(n>0|
|00003d80| 29 7b 0d 09 09 09 09 09 | 2a 76 61 6c 75 65 2b 2b |){......|*value++|
|00003d90| 3d 28 76 61 6c 3e 3e 73 | 68 69 66 74 29 26 33 3b |=(val>>s|hift)&3;|
|00003da0| 0d 09 09 09 09 09 6e 2d | 2d 3b 0d 09 09 09 09 7d |......n-|-;.....}|
|00003db0| 65 6c 73 65 7b 0d 09 09 | 09 09 09 62 72 65 61 6b |else{...|...break|
|00003dc0| 3b 0d 09 09 09 09 7d 0d | 09 09 09 7d 77 68 69 6c |;.....}.|...}whil|
|00003dd0| 65 28 73 68 69 66 74 3e | 30 29 3b 0d 09 09 09 73 |e(shift>|0);....s|
|00003de0| 68 69 66 74 3d 73 69 7a | 65 6f 66 28 2a 70 74 72 |hift=siz|eof(*ptr|
|00003df0| 29 2a 38 3b 0d 09 09 7d | 77 68 69 6c 65 28 6e 3e |)*8;...}|while(n>|
|00003e00| 30 29 3b 0d 09 09 62 72 | 65 61 6b 3b 0d 09 7d 0d |0);...br|eak;..}.|
|00003e10| 09 63 61 73 65 20 32 3a | 7b 0d 09 09 72 65 67 69 |.case 2:|{...regi|
|00003e20| 73 74 65 72 20 75 6e 73 | 69 67 6e 65 64 20 63 68 |ster uns|igned ch|
|00003e30| 61 72 20 76 61 6c 2c 2a | 70 74 72 3d 70 69 78 65 |ar val,*|ptr=pixe|
|00003e40| 6c 50 74 72 3b 0d 09 09 | 73 68 69 66 74 3d 73 69 |lPtr;...|shift=si|
|00003e50| 7a 65 6f 66 28 2a 70 74 | 72 29 2a 38 3b 0d 09 09 |zeof(*pt|r)*8;...|
|00003e60| 73 68 69 66 74 2d 3d 62 | 69 74 73 4f 66 66 73 65 |shift-=b|itsOffse|
|00003e70| 74 3b 09 2f 2f 20 66 72 | 6f 6d 20 72 69 67 68 74 |t;.// fr|om right|
|00003e80| 2c 20 69 6e 73 74 65 61 | 64 20 6f 66 20 66 72 6f |, instea|d of fro|
|00003e90| 6d 20 6c 65 66 74 0d 09 | 09 64 6f 7b 0d 09 09 09 |m left..|.do{....|
|00003ea0| 76 61 6c 3d 2a 70 74 72 | 2b 2b 3b 0d 09 09 09 64 |val=*ptr|++;....d|
|00003eb0| 6f 7b 0d 09 09 09 09 73 | 68 69 66 74 2d 3d 34 3b |o{.....s|hift-=4;|
|00003ec0| 0d 09 09 09 09 69 66 28 | 6e 3e 30 29 7b 0d 09 09 |.....if(|n>0){...|
|00003ed0| 09 09 09 2a 76 61 6c 75 | 65 2b 2b 3d 28 76 61 6c |...*valu|e++=(val|
|00003ee0| 3e 3e 73 68 69 66 74 29 | 26 31 35 3b 0d 09 09 09 |>>shift)|&15;....|
|00003ef0| 09 09 6e 2d 2d 3b 0d 09 | 09 09 09 7d 65 6c 73 65 |..n--;..|...}else|
|00003f00| 7b 0d 09 09 09 09 09 62 | 72 65 61 6b 3b 0d 09 09 |{......b|reak;...|
|00003f10| 09 09 7d 0d 09 09 09 7d | 77 68 69 6c 65 28 73 68 |..}....}|while(sh|
|00003f20| 69 66 74 3e 30 29 3b 0d | 09 09 09 73 68 69 66 74 |ift>0);.|...shift|
|00003f30| 3d 73 69 7a 65 6f 66 28 | 2a 70 74 72 29 2a 38 3b |=sizeof(|*ptr)*8;|
|00003f40| 0d 09 09 7d 77 68 69 6c | 65 28 6e 3e 30 29 3b 0d |...}whil|e(n>0);.|
|00003f50| 09 09 62 72 65 61 6b 3b | 0d 09 7d 0d 09 63 61 73 |..break;|..}..cas|
|00003f60| 65 20 33 3a 7b 0d 09 09 | 72 65 67 69 73 74 65 72 |e 3:{...|register|
|00003f70| 20 75 6e 73 69 67 6e 65 | 64 20 63 68 61 72 20 2a | unsigne|d char *|
|00003f80| 70 42 3d 70 69 78 65 6c | 50 74 72 3b 0d 09 09 66 |pB=pixel|Ptr;...f|
|00003f90| 6f 72 28 3b 6e 3e 30 3b | 6e 2d 2d 29 20 2a 76 61 |or(;n>0;|n--) *va|
|00003fa0| 6c 75 65 2b 2b 3d 2a 70 | 42 2b 2b 3b 0d 09 09 62 |lue++=*p|B++;...b|
|00003fb0| 72 65 61 6b 3b 0d 09 7d | 0d 09 63 61 73 65 20 34 |reak;..}|..case 4|
|00003fc0| 3a 7b 0d 09 09 72 65 67 | 69 73 74 65 72 20 75 6e |:{...reg|ister un|
|00003fd0| 73 69 67 6e 65 64 20 73 | 68 6f 72 74 20 2a 70 57 |signed s|hort *pW|
|00003fe0| 3d 28 75 6e 73 69 67 6e | 65 64 20 73 68 6f 72 74 |=(unsign|ed short|
|00003ff0| 20 2a 29 70 69 78 65 6c | 50 74 72 3b 0d 09 09 66 | *)pixel|Ptr;...f|
|00004000| 6f 72 28 3b 6e 3e 30 3b | 6e 2d 2d 29 20 2a 76 61 |or(;n>0;|n--) *va|
|00004010| 6c 75 65 2b 2b 3d 2a 70 | 57 2b 2b 3b 0d 09 09 62 |lue++=*p|W++;...b|
|00004020| 72 65 61 6b 3b 0d 09 7d | 0d 09 63 61 73 65 20 35 |reak;..}|..case 5|
|00004030| 3a 7b 0d 09 09 72 65 67 | 69 73 74 65 72 20 75 6e |:{...reg|ister un|
|00004040| 73 69 67 6e 65 64 20 6c | 6f 6e 67 20 2a 70 4c 3d |signed l|ong *pL=|
|00004050| 28 75 6e 73 69 67 6e 65 | 64 20 6c 6f 6e 67 20 2a |(unsigne|d long *|
|00004060| 29 70 69 78 65 6c 50 74 | 72 3b 0d 09 09 66 6f 72 |)pixelPt|r;...for|
|00004070| 28 3b 6e 3e 30 3b 6e 2d | 2d 29 20 2a 76 61 6c 75 |(;n>0;n-|-) *valu|
|00004080| 65 2b 2b 3d 2a 70 4c 2b | 2b 3b 0d 09 09 62 72 65 |e++=*pL+|+;...bre|
|00004090| 61 6b 3b 0d 09 7d 0d 09 | 7d 0d 09 69 66 28 51 44 |ak;..}..|}..if(QD|
|000040a0| 33 32 45 78 69 73 74 73 | 28 29 29 53 77 61 70 4d |32Exists|())SwapM|
|000040b0| 4d 55 4d 6f 64 65 28 26 | 6d 6f 64 65 33 32 29 3b |MUMode(&|mode32);|
|000040c0| 0d 09 6f 6c 64 58 3d 78 | 3b 0d 09 6f 6c 64 59 3d |..oldX=x|;..oldY=|
|000040d0| 79 3b 0d 09 72 65 74 75 | 72 6e 20 65 72 72 6f 72 |y;..retu|rn error|
|000040e0| 3b 0d 7d 0d 00 00 00 00 | 00 00 00 00 00 00 00 00 |;.}.....|........|
|000040f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00004100| 00 00 01 00 00 00 02 64 | 00 00 01 64 00 00 00 66 |.......d|...d...f|
|00004110| 09 76 61 6c 75 65 5b 2d | 32 5d 00 18 00 00 28 66 |.value[-|2]....(f|
|00004120| 00 fb 00 44 da a8 00 00 | 09 76 61 6c 75 65 5b 2d |...D....|.value[-|
|00004130| 12 53 65 74 50 69 78 65 | 6c 73 51 75 69 63 6b 6c |.SetPixe|lsQuickl|
|00004140| 79 2e 63 63 02 00 00 00 | 54 45 58 54 4b 41 48 4c |y.cc....|TEXTKAHL|
|00004150| 00 00 54 45 58 54 4b 41 | 48 4c 00 00 00 00 00 00 |..TEXTKA|HL......|
|00004160| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00004170| 00 00 a7 e5 d5 cd 00 00 | 00 00 00 00 02 ca 6c 6c |........|......ll|
|00004180| 6f 77 69 6e 67 20 74 68 | 65 6d 20 74 6f 20 62 65 |owing th|em to be|
|00004190| 20 73 65 6c 65 63 74 69 | 76 65 6c 79 20 74 68 72 | selecti|vely thr|
|000041a0| 6f 77 6e 20 69 6e 20 74 | 68 65 20 54 72 61 73 68 |own in t|he Trash|
|000041b0| 2e 20 41 6e 79 20 66 69 | 6c 65 73 20 77 68 69 63 |. Any fi|les whic|
|000041c0| 68 20 61 72 65 20 6e 6f | 74 20 74 68 72 6f 77 6e |h are no|t thrown|
|000041d0| 20 61 77 61 79 20 6d 61 | 79 20 62 65 20 6d 6f 76 | away ma|y be mov|
|000041e0| 65 64 20 62 61 63 6b 20 | 77 69 74 68 20 74 68 65 |ed back |with the|
|000041f0| 20 73 61 6d 65 20 53 79 | 6e 63 68 72 6f 6e 69 7a | same Sy|nchroniz|
|00004200| 00 00 00 0a 00 00 1a 1d | 00 8b 00 00 00 00 00 00 |........|........|
|00004210| 00 e4 00 08 00 20 00 00 | 18 aa 00 7f 00 ed 9d b8 |..... ..|........|
|00004220| 80 00 01 19 01 c6 01 8b | 02 81 94 20 00 00 00 00 |........|... ....|
|00004230| 00 00 01 72 00 30 00 00 | 18 c4 00 81 00 ed 9c fc |...r.0..|........|
|00004240| 80 00 00 59 01 b6 00 cb | 02 4f 94 20 00 00 00 00 |...Y....|.O. ....|
|00004250| 00 00 11 77 69 6e 64 6f | 77 2d 3e 70 6f 72 74 52 |...windo|w->portR|
|00004260| 65 63 74 20 00 10 00 00 | 19 07 00 84 00 ed 9c 54 |ect ....|.......T|
|00004270| 00 00 01 78 00 10 00 00 | 19 12 00 84 00 ed 9c 44 |...x....|.......D|
|00004280| 00 00 01 6e 00 20 00 00 | 26 1f 00 f1 00 ed 9c 4c |...n. ..|&......L|
|00004290| 80 00 01 3d 01 d7 01 a4 | 02 4f 94 20 00 00 00 00 |...=....|.O. ....|
|000042a0| 00 00 01 72 00 12 00 00 | 1a 1d 00 8b 00 ed 9b c8 |...r....|........|
|000042b0| 00 00 03 70 6d 20 00 14 | 00 00 26 1f 00 f1 00 ed |...pm ..|..&.....|
|000042c0| 9b d0 00 00 05 70 6d 50 | 74 72 00 2c 00 00 26 1f |.....pmP|tr.,..&.|
|000042d0| 00 f1 00 ed 9b 6c 80 00 | 00 79 00 13 01 4e 01 53 |.....l..|.y...N.S|
|000042e0| 94 20 00 00 00 00 00 00 | 0d 70 6d 50 74 72 2d 3e |. ......|.pmPtr->|
|000042f0| 62 6f 75 6e 64 73 00 00 | 00 48 00 09 4d 6f 6e 61 |bounds..|.H..Mona|
|00004300| 63 6f 00 4f 00 20 00 4f | 02 1d 00 00 00 00 00 00 |co.O. .O|........|
|00004310| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 06 00 04 |........|........|
|00004320| 00 50 00 20 01 8d 02 3d | 00 50 00 20 01 8d 02 3d |.P. ...=|.P. ...=|
|00004330| a7 ac 96 a4 00 00 00 00 | 00 00 0f 91 00 00 00 00 |........|........|
|00004340| 01 00 00 00 00 1e 00 50 | 00 20 01 8d 02 3d 00 50 |.......P|. ...=.P|
|00004350| 00 20 01 8d 02 3d 00 00 | 00 00 00 00 00 00 00 00 |. ...=..|........|
|00004360| 00 00 00 00 00 00 01 00 | 00 00 02 64 00 00 01 64 |........|...d...d|
|00004370| 00 00 00 66 00 f3 bf dc | 20 b0 00 00 00 1c 00 66 |...f....| ......f|
|00004380| 00 02 42 4b 50 54 00 00 | 00 1a 44 54 56 55 00 00 |..BKPT..|..DTVU..|
|00004390| 00 26 4d 50 53 52 00 01 | 00 32 3c 1f ff ff 00 00 |.&MPSR..|.2<.....|
|000043a0| 00 00 00 00 00 00 35 6b | ff ff 00 00 00 0e 00 00 |......5k|........|
|000043b0| 00 00 03 ed ff ff 00 00 | 00 f6 00 00 00 00 03 f0 |........|........|
|000043c0| ff ff 00 00 01 42 00 00 | 00 00 00 00 00 00 00 00 |.....B..|........|
|000043d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000043e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000043f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
+--------+-------------------------+-------------------------+--------+--------+